Revision tags: studio-1.4 |
|
#
83143504 |
| 13-Aug-2015 |
Jaydeep Patil <jaydeep.patil@imgtec.com> |
[LLDB][MIPS] Handle false positives for MIPS hardware watchpoints SUMMARY: Last 3bits of the watchpoint address are masked by the kernel. For example, n is at 0x120010d00 and m is 0x1200
[LLDB][MIPS] Handle false positives for MIPS hardware watchpoints SUMMARY: Last 3bits of the watchpoint address are masked by the kernel. For example, n is at 0x120010d00 and m is 0x120010d04. When a watchpoint is set at m, then watch exception is generated even when n is read/written. To handle this case, instruction at PC is emulated to find the base address of the load/store instruction. This address is then appended to the description of the stop-info packet. Client then reads this information to check whether the user has set a watchpoint on this address. Reviewers: jingham, clayborg Subscribers: nitesh.jain, mohit.bhakkad, sagar, bhushan and lldb-commits Differential Revision: http://reviews.llvm.org/D11672
llvm-svn: 244864
show more ...
|
#
2040548f |
| 09-Aug-2015 |
Omair Javaid <omair.javaid@linaro.org> |
Fix for build errors on arm-linux-gnueabi-gcc http://reviews.llvm.org/D11256
llvm-svn: 244419
|
Revision tags: llvmorg-3.7.0-rc2 |
|
#
3681c5b8 |
| 30-Jul-2015 |
Mohit K. Bhakkad <mohit.bhakkad@gmail.com> |
[LLDB][MIPS] To handle SI_KERNEL generated for invalid 64 bit address Patch by Nitesh Jain
Reviewers: clayborg, ovyalov. Subscribers: jaydeep, bhushan, mohit.bhakkad, sagar, emaste, lldb-commits. Di
[LLDB][MIPS] To handle SI_KERNEL generated for invalid 64 bit address Patch by Nitesh Jain
Reviewers: clayborg, ovyalov. Subscribers: jaydeep, bhushan, mohit.bhakkad, sagar, emaste, lldb-commits. Differential Revision: http://reviews.llvm.org/D11176
llvm-svn: 243620
show more ...
|
#
05569f67 |
| 23-Jul-2015 |
Pavel Labath <labath@google.com> |
Add jstopinfo support to llgs
Summary: This adds support for jstopinfo field of stop-reply packets. This field enables us to avoid querying full thread stop data on most stops (see r242593 for more
Add jstopinfo support to llgs
Summary: This adds support for jstopinfo field of stop-reply packets. This field enables us to avoid querying full thread stop data on most stops (see r242593 for more details).
Reviewers: ovyalov, clayborg
Subscribers: lldb-commits
Differential Revision: http://reviews.llvm.org/D11415
llvm-svn: 242997
show more ...
|
Revision tags: llvmorg-3.7.0-rc1, llvmorg-3.6.2, llvmorg-3.6.2-rc1 |
|
#
c4e25c96 |
| 29-May-2015 |
Pavel Labath <labath@google.com> |
Report inferior SIGSEGV as a signal instead of an exception on linux
Summary: Previously, we reported inferior receiving SIGSEGV (or SIGILL, SIGFPE, SIGBUS) as an "exception" to LLDB, presumably to
Report inferior SIGSEGV as a signal instead of an exception on linux
Summary: Previously, we reported inferior receiving SIGSEGV (or SIGILL, SIGFPE, SIGBUS) as an "exception" to LLDB, presumably to match OSX behaviour. Beside the fact that we were basically lying to the user, this was also causing problems with inferiors which handle SIGSEGV by themselves, since LLDB was unable to reinject this signal back into the inferior.
This commit changes LLGS to report SIGSEGV as a signal. This has necessitated some changes in the test-suite, which had previously used eStopReasonException to locate threads that crashed. Now it uses platform-specific logic, which in the case of linux searches for eStopReasonSignaled with signal=SIGSEGV.
I have also added the ability to set the description of StopInfoUnixSignal using the description field of the gdb-remote packet. The linux stub uses this to display additional information about the segfault (invalid address, address access protected, etc.).
Test Plan: All tests pass on linux and osx.
Reviewers: ovyalov, clayborg, emaste
Subscribers: emaste, lldb-commits
Differential Revision: http://reviews.llvm.org/D10057
llvm-svn: 238549
show more ...
|
#
068f8a7e |
| 26-May-2015 |
Tamas Berghammer <tberghammer@google.com> |
Move register reading form NativeProcessLinux to NativeRegisterContextLinux*
This change reorganize the register read/write code inside lldb-server on Linux with moving the architecture independent
Move register reading form NativeProcessLinux to NativeRegisterContextLinux*
This change reorganize the register read/write code inside lldb-server on Linux with moving the architecture independent code into a new class called NativeRegisterContextLinux and all of the architecture dependent code into the appropriate NativeRegisterContextLinux_* class. As part of it the compilation of the architecture specific register contexts are only compiled on the specific architecture because they can't be used in other cases.
The purpose of this change is to remove a lot of duplicated code from the different register contexts and to remove the architecture dependent codes from the global NativeProcessLinux class.
Differential revision: http://reviews.llvm.org/D9935
llvm-svn: 238196
show more ...
|
Revision tags: llvmorg-3.6.1, llvmorg-3.6.1-rc1 |
|
#
8c8ff7af |
| 11-May-2015 |
Pavel Labath <labath@google.com> |
[NativeProcessLinux] Remove double thread state accounting
Summary: Now that all thread events are processed synchronously, there is no need to have separate records of whether a thread is running.
[NativeProcessLinux] Remove double thread state accounting
Summary: Now that all thread events are processed synchronously, there is no need to have separate records of whether a thread is running. This changes the (ever-dwindling) remains of the TSC to use NativeThreadLinux as the authoritative source of the state of threads. The rest of the ThreadContext we need has been moved to a member of NTL.
Test Plan: ninja check-lldb continues to pass
Reviewers: chaoren, ovyalov
Subscribers: lldb-commits
Differential Revision: http://reviews.llvm.org/D9562
llvm-svn: 236983
show more ...
|
#
5fd24c67 |
| 23-Apr-2015 |
Pavel Labath <labath@google.com> |
[NativeProcessLinux] Fix race condition during inferior thread creation
The following situation occured if we were stopping a process (due to breakpoint, watchpoint, ... hit) while a new thread was
[NativeProcessLinux] Fix race condition during inferior thread creation
The following situation occured if we were stopping a process (due to breakpoint, watchpoint, ... hit) while a new thread was being created. - process has two threads: A and B. - thread A hits a breakpoint: we send a STOP signal to thread B and register a callback with ThreadStateCoordinator to send a stop notification after the thread stops. - thread B stops, but not due to the SIGSTOP, but on a thread creation event (of a new thread C). We are unaware of our desire to stop, so we queue ThreadStopped and RequestResume operations with TSC, so the thread can continue running. - TSC receives the ThreadStopped event, sees that all threads are stopped and fires the delayed stop notification. - immediately after that TSC gets the RequestResume operation, so it resumes the thread.
At this point the state is inconsistent because LLDB thinks the process is stopped and will start issuing commands to it, but one of the threads is in fact running. Things eventually break.
I address this problem by omitting the two TSC events altogether and Resuming the thread B directly. This way the short stop is invisible to the TSC and the delayed notification will not fire. We will fire the notification when we actually process the SIGSTOP on thread B.
When we get the initial SIGSTOP for thread C, we also resume the thread and send a ThreadWasCreated message (is_stopped = false) to the TSC. This way, the TSC can stop the thread on its own and handle the stop event later. This way the state of the new thread is correctly handled as well (thanks Chaoren for the idea).
This patch also removes the synchronisation between the thread creation notifications on threads B and C. The need for this synchronisation is unclear (the comments seem to hint that the new thread is "fully created" only after we process both events, but I have noticed no regressions in treating it as "created" even after just processing the initial C event), but it is a source for many kinds of obscure races, since it introduces a new thread state "Launching" and the rest of the code does not handle this state at all (what happens if we get a resume request from LLDB while this thread is launching? what happens if we get a stop request? etc.).
This fixes the "spurious $O packet" problem in TestPrintStackTraces.py. However, the test remains disabled on i386 due to the VDSO issue.
Test Plan: TestPrintStackTraces works on x86_64. No regressions in the rest of the test suite.
Reviewers: vharron, chaoren
Subscribers: lldb-commits
Differential Revision: http://reviews.llvm.org/D9145
llvm-svn: 235579
show more ...
|
#
1fab7b97 |
| 16-Apr-2015 |
Tamas Berghammer <tberghammer@google.com> |
Fix printing of the failure address in NativeThreadLinux
llvm-svn: 235097
|
#
3f57216c |
| 14-Apr-2015 |
Omair Javaid <omair.javaid@linaro.org> |
Adds Register Context Linux/POSIX for ARM Architecture
This patch is major step towards supporting lldb on ARM. This adds all the required bits to support register manipulation on Linux Arm. Also
Adds Register Context Linux/POSIX for ARM Architecture
This patch is major step towards supporting lldb on ARM. This adds all the required bits to support register manipulation on Linux Arm. Also adds utility enumerations, definitions and register context classes for arm.
llvm-svn: 234870
show more ...
|
#
db264a6d |
| 31-Mar-2015 |
Tamas Berghammer <tberghammer@google.com> |
Move several plugin to its own namespace
Affected paths: * Plugins/Platform/Android/* * Plugins/Platform/Linux/* * Plugins/Platform/gdb-server/* * Plugins/Process/Linux/* * Plugins/Process/gdb-remot
Move several plugin to its own namespace
Affected paths: * Plugins/Platform/Android/* * Plugins/Platform/Linux/* * Plugins/Platform/gdb-server/* * Plugins/Process/Linux/* * Plugins/Process/gdb-remote/*
Differential revision: http://reviews.llvm.org/D8654
llvm-svn: 233679
show more ...
|
#
12fd3756 |
| 20-Mar-2015 |
Pavel Labath <labath@google.com> |
Add missing cases to NativeProcessLinux LogThreadStopInfo
Test Plan: No tests, this is just a debug logging function.
Reviewers: tberghammer
Subscribers: lldb-commits
Differential Revision: http:
Add missing cases to NativeProcessLinux LogThreadStopInfo
Test Plan: No tests, this is just a debug logging function.
Reviewers: tberghammer
Subscribers: lldb-commits
Differential Revision: http://reviews.llvm.org/D8453
llvm-svn: 232815
show more ...
|
#
c16f5dca |
| 19-Mar-2015 |
Chaoren Lin <chaorenl@google.com> |
Report watchpoint hits during single stepping.
Summary: Reorganized NativeProcessLinux::MonitorSIGTRAP to check for watchpoint hits on TRAP_TRACE.
Added test for stepping over watchpoints.
https:/
Report watchpoint hits during single stepping.
Summary: Reorganized NativeProcessLinux::MonitorSIGTRAP to check for watchpoint hits on TRAP_TRACE.
Added test for stepping over watchpoints.
https://llvm.org/bugs/show_bug.cgi?id=22814
Reviewers: ovyalov, tberghammer, vharron, clayborg
Subscribers: jingham, labath, lldb-commits
Differential Revision: http://reviews.llvm.org/D8404
llvm-svn: 232784
show more ...
|
#
3294de27 |
| 18-Mar-2015 |
Zachary Turner <zturner@google.com> |
Move lldb-log.cpp to core/Logging.cpp
So that we don't have to update every single #include in the entire codebase to #include this new header (which used to get included by lldb-private-log.h, we a
Move lldb-log.cpp to core/Logging.cpp
So that we don't have to update every single #include in the entire codebase to #include this new header (which used to get included by lldb-private-log.h, we automatically #include "Logging.h" from within "Log.h".
llvm-svn: 232653
show more ...
|
Revision tags: llvmorg-3.5.2, llvmorg-3.5.2-rc1 |
|
#
eadb2a9e |
| 17-Mar-2015 |
Tamas Berghammer <tberghammer@google.com> |
Report stopped by trace if none of the watchpoint was hit
Some linux kernel reports a watchpoint hit after single stepping even when no watchpoint was hit. This CL looks for a watchpoint which was h
Report stopped by trace if none of the watchpoint was hit
Some linux kernel reports a watchpoint hit after single stepping even when no watchpoint was hit. This CL looks for a watchpoint which was hit and reports a stop by trace if it haven't found any.
Differential revision: http://reviews.llvm.org/D8081
llvm-svn: 232482
show more ...
|
#
3df471c3 |
| 17-Mar-2015 |
Mohit K. Bhakkad <mohit.bhakkad@gmail.com> |
[MIPS] - Register Context for MIPS64
Patch by Jaydeep Patil
Summery: 1. Add MIPS variants by parsing e_flags of the ELF 2. Create RegisterInfoInterface and RegisterContext for MIPS64 and MIPS64EL
[MIPS] - Register Context for MIPS64
Patch by Jaydeep Patil
Summery: 1. Add MIPS variants by parsing e_flags of the ELF 2. Create RegisterInfoInterface and RegisterContext for MIPS64 and MIPS64EL
Reviewers: clayborg
Subscribers: tberghammer, bhushan, mohit.bhakkad, sagar
Differential Revision: http://reviews.llvm.org/D8166
llvm-svn: 232467
show more ...
|
#
1e209fcc |
| 13-Mar-2015 |
Tamas Berghammer <tberghammer@google.com> |
Create NativeRegisterContext for android-arm64
Differential revision: http://reviews.llvm.org/D8058
llvm-svn: 232160
|
#
f591f69f |
| 26-Feb-2015 |
Chaoren Lin <chaorenl@google.com> |
Can't set watchpoints on launching threads on Linux LLGS.
Summary: They'll be set anyway when the thread starts running, so the launching threads should just ignore the set request.
Reviewers: ovya
Can't set watchpoints on launching threads on Linux LLGS.
Summary: They'll be set anyway when the thread starts running, so the launching threads should just ignore the set request.
Reviewers: ovyalov
Subscribers: lldb-commits
Differential Revision: http://reviews.llvm.org/D7914
llvm-svn: 230671
show more ...
|
Revision tags: llvmorg-3.6.0 |
|
#
8bc34f4d |
| 19-Feb-2015 |
Oleksiy Vyalov <ovyalov@google.com> |
Prevent LLGS from crashing when exiting - make NativeProcessLinux to wait until ThreadStateCoordinator is fully stopped before entering ~NativeProcessLinux.
http://reviews.llvm.org/D7692
llvm-svn:
Prevent LLGS from crashing when exiting - make NativeProcessLinux to wait until ThreadStateCoordinator is fully stopped before entering ~NativeProcessLinux.
http://reviews.llvm.org/D7692
llvm-svn: 229875
show more ...
|
Revision tags: llvmorg-3.6.0-rc4 |
|
#
1c6a1ea9 |
| 16-Feb-2015 |
Tamas Berghammer <tberghammer@google.com> |
Enable process launching on android from lldb-gdbserver
Currently it is uses the same code used on linux. Will be replaced with android specific code if needed.
Differential Revision: http://review
Enable process launching on android from lldb-gdbserver
Currently it is uses the same code used on linux. Will be replaced with android specific code if needed.
Differential Revision: http://reviews.llvm.org/D7613
llvm-svn: 229371
show more ...
|
Revision tags: llvmorg-3.6.0-rc3 |
|
#
18fe6404 |
| 03-Feb-2015 |
Chaoren Lin <chaorenl@google.com> |
Implement setting and clearing watchpoints.
llvm-svn: 227930
|
#
28e57429 |
| 03-Feb-2015 |
Chaoren Lin <chaorenl@google.com> |
Share crash information between LLGS and local POSIX debugging with CrashReason class. Deliver crash information from LLGS to lldb via description field of thread stop packet.
llvm-svn: 227926
|
#
b8af31d4 |
| 03-Feb-2015 |
Chaoren Lin <chaorenl@google.com> |
Fix some bugs in llgs thread state handling.
* When the thread state coordinator is told to skip sending a stop request for a running thread that is ignored (e.g. the thread that steps in a step
Fix some bugs in llgs thread state handling.
* When the thread state coordinator is told to skip sending a stop request for a running thread that is ignored (e.g. the thread that steps in a step operation is technically running and should not have a stop sent to it, since it will stop of its own accord per the kernel step operation), ensure the deferred signal notification logic still waits for the skipped thread. (i.e. we want to defer the notification until the stepping thread is indeed stopped, we just don't want to send it a tgkill).
* Add ThreadStateCoordinator::RequestResumeAsNeeded(). This variant of the RequestResume() method does not call the error function when the thread is already running. Instead, it just logs that the thread is already running and skips the resume operation. This is useful for the case of vCont;c handling, where we tell all threads that they should be running. At the place we're calling, all we know is "we want this thread running if it isn't already," and that's exactly what this command does.
* Formatting change (minor) in NativeThreadLinux logging.
llvm-svn: 227913
show more ...
|
#
ae29d395 |
| 03-Feb-2015 |
Chaoren Lin <chaorenl@google.com> |
llgs: fix up some handling of stepping.
Tracked down while working on https://github.com/tfiala/lldb/issues/75. This is not a complete fix for that issue, but moves us farther along.
Fixes: * When
llgs: fix up some handling of stepping.
Tracked down while working on https://github.com/tfiala/lldb/issues/75. This is not a complete fix for that issue, but moves us farther along.
Fixes: * When a thread step is requested via vCont:{s,S}, Resume() now marks the stepping thread as (1) currently stepping and (2) does trigger the deferred signal for the stepped thread. This fixes a bug where we were actually triggering a deferred stop cycle here for the non-stepping thread since the single step thread was not part of the Resume() deferred signal mechanism. The stepping thread is also marked in the thread state coordinator as running (via a resume callback).
* When we get the SIGTRAP signal for the step completion, we don't do a deferred signal call - that happened during the vCont:{s,S} processing in Resume() already. Now we just need to mark that the stepping thread is now stopped. If this is the last thread in the set that needs to stop, it will trigger the process/delegate stop call that will notify lldb. Otherwise, that'll happen when the final thead we're waiting for stops.
Misc: * Fixed up thread stop logging to use a leading 0 (0x%PRIx32) so we don't get log lines like 0x5 for 0x05 SIGTRAP.
llvm-svn: 227911
show more ...
|
Revision tags: llvmorg-3.6.0-rc2, llvmorg-3.6.0-rc1, llvmorg-3.5.1, llvmorg-3.5.1-rc2, llvmorg-3.5.1-rc1 |
|
#
8faf9370 |
| 16-Sep-2014 |
David Majnemer <david.majnemer@gmail.com> |
Clean-up warnings on Linux/GCC
llvm-svn: 217862
|