#
bfd3d337 |
|
29-May-2023 |
Trung Nguyen <trungnt282910@gmail.com> |
strace: Print detailed signal information - Add support for retrieving the `siginfo_t` structure of a signal event from the Debugger API. - Add code to `strace` to display this information every time a signal event occurs, similar to the Linux `strace` tool. Change-Id: If4e92bbae049ee0b52efaf9fc911d66511da62f4 Reviewed-on: https://review.haiku-os.org/c/haiku/+/6393 Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org> Reviewed-by: waddlesplash <waddlesplash@gmail.com>
|
#
b959d46d |
|
10-Apr-2015 |
Michael Lotz <mmlr@mlotz.ch> |
syscalls: Add get_stack_trace and lookup_symbol syscalls. The get_stack_trace syscall generates a stack trace using the kernel debugging facilities and copies the resulting return address array to the preallocated buffer from userland. It is only possible to get a stack trace of the current thread. The lookup_symbol syscall can be used to look up the symbol and image name corresponding to an address. It can be used to resolve symbols from a stack trace generated by the get_stack_trace syscall. Only symbols of the current team can be looked up. Note that this uses the symbol lookup of the kernel debugger which does not support lookup of all symbols (static functions are missing for example). This is meant to be used in situations where more elaborate stack trace generation, like done in the userland debugging helpers, is not possible due to constraints.
|
#
73ad2473 |
|
05-Nov-2013 |
Pawel Dziepak <pdziepak@quarnos.org> |
Remove remaining unnecessary 'volatile' qualifiers
|
#
24df6592 |
|
11-Jun-2011 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Merged signals-merge branch into trunk with the following changes: * Reorganized the kernel locking related to threads and teams. * We now discriminate correctly between process and thread signals. Signal handlers have been moved to teams. Fixes #5679. * Implemented real-time signal support, including signal queuing, SA_SIGINFO support, sigqueue(), sigwaitinfo(), sigtimedwait(), waitid(), and the addition of the real-time signal range. Closes #1935 and #2695. * Gave SIGBUS a separate signal number. Fixes #6704. * Implemented <time.h> clock and timer support, and fixed/completed alarm() and [set]itimer(). Closes #5682. * Implemented support for thread cancellation. Closes #5686. * Moved send_signal() from <signal.h> to <OS.h>. Fixes #7554. * Lots over smaller more or less related changes. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42116 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
4535495d |
|
10-Jan-2011 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Merged the signals branch into trunk, with these changes: * The team and thread kernel structures have been renamed to Team and Thread respectively and moved into the new BKernel namespace. * Several (kernel add-on) sources have been converted from C to C++ since private kernel headers are included that are no longer C compatible. Changes after merging: * Fixed gcc 2 build (warnings mainly in the scary firewire bus manager). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40196 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
27a115f6 |
|
14-Dec-2010 |
Rene Gollent <anevilyak@gmail.com> |
Revert r39846 and r39847. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39849 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
7040b50d |
|
13-Dec-2010 |
Rene Gollent <anevilyak@gmail.com> |
Add support for thread rename and priority change notifications to the debugger API/message set. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39846 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
8b3d3d8a |
|
25-Feb-2010 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Correctly handle cases when a thread single-steps into the kernel as it can happen on syscalls or "int" instructions. The debug exception handler sets the thread debug flags B_THREAD_DEBUG_STOP and B_THREAD_DEBUG_NOTIFY_SINGLE_STEP (new) and lets the thread continue. Before leaving the kernel the thread is stopped and a single-step notification is sent. Fixes #3487. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35620 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
ac106be5 |
|
27-Sep-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Inherit the disable_debugger() flag to a fork()ed child. load_image() doesn't -- I'm undecided whether it should, too. Fixes #4642. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33330 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
0b11ecb1 |
|
21-Jul-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Always include the public arch_debugger.h headers. The structures defined there are prefixed with the respective architecture name. Useful for remote debugging a different architecture. * <x86/arch_debugger.h>: Introduced a structure for the FPU state, so that it isn't left to the debugger. * Removed the _kern_get_thread_cpu_state() syscall. Was originally intended for bdb compatiblity, but isn't really needed. * Kernel x86 arch_get_debug_cpu_state(): The use of fnsave was broken, since it reinits the FPU after saving the state. This resulted in weird results when debugging functions using the FPU. We now use fxsave, if available. Otherwise fnsave + frstor should be used -- not fully implemented yet. Same for arch_set_debug_cpu_state(). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31682 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
b0f12d64 |
|
23-Jun-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Added transparent software breakpoint support for user debuggers: * The bulk of the work -- i.e. juggling the software and hardware breakpoints, watchpoints, and memory reads/writes -- is done in the new class BreakpointManager. * For the architectures a few capability macros have to be defined, one pointing to the software breakpoint instruction opcode. Done for x86. * Some more simplifications in the user debugger code, made possible by the recently introduced debugger_changed_condition attribute. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31214 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
ba391bcc |
|
22-Jun-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Added team_debug_info::debugger_changed_condition to serialize changes to the installed team debugger and adjusted the code accordingly. It's not needed yet, but I intend to add support for software breakpoints and those require a bit of uninitialization that needs to be synchronized with debugger changes and can't be done with interrupts disabled. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31194 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
6dcc2a7e |
|
22-Jun-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Made destroy_team_debug_info() static, as it's not used outside the source file. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31190 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
568ade58 |
|
13-Jun-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
User debugger support: * Generalized address checks. The debugger can now also read the commpage. * Added new syscall _kern_get_thread_cpu_state() to get the CPU state of a not running thread. Introduced arch_get_thread_debug_cpu_state() for that purpose, which is only implemented for x86 ATM (uses the new i386_get_thread_user_iframe()). * Don't allow a debugger to change a thread's "esp" anymore. That's the esp register in the kernel. "user_esp" can still be changed. * Generally set RF (resume flag) in eflags in interrupt handlers, not only after a instruction breakpoint debug exception. This should prevent breakpoints from being triggered more than once (e.g. when the breakpoint is on an instruction that can cause a page fault). I still saw those with bdb in VMware, but that might be a VMware bug. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31045 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
002c9410 |
|
29-Mar-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Missing "struct thread" declaration, breaking the PPC build. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29780 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
e1975d33 |
|
23-Feb-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* When a team debugger is installed automatically, the thread causing that is stored now. * Extended the debugger message for B_DEBUGGER_MESSAGE_HANDED_OVER by the causing thread. * Also send B_DEBUGGER_MESSAGE_HANDED_OVER to the debugger to which the team was handed over. The message will be the very first one the debugger gets from the team in question. * Some harmless refactoring (added thread_hit_serious_debug_event()). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29302 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
f965a969 |
|
28-Sep-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Extended the profiling API. When using the variable stack trace depth buffer format, the buffer can now also contain other events than just stack traces. ATM these are only references to the image events (created/deleted). Therefore we no longer have to flush the profiling buffer after such an event, since the debugger can exactly match the samples. Since we couldn't flush when the profiling timer hit while the thread was in the kernel, that wasn't working that well anyway. "profile -f" fails to translate stack trace addresses only very rarely, now. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27775 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
5181b35b |
|
23-Sep-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Introduced a separate flag for indicating that disable_debugger() had been called for a team, and fail installing the default debugger if it is set. This makes disable_debugger() actually work. Fixes bug #2763. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27713 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
0135e2e3 |
|
22-Sep-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Increased the maximum profiling caller stack depth significantly. * Extended the profiling API by an option to record a variable number of samples per tick. The stack depth is used as a maximum. * Added new option "-f" to the "profile" tool. When specified it increments the hit counts of all symbols in the full available caller stack. I.e. the resulting hit counts will approximate the total time spent in each function or any function directly or indirectly called by it. Thus "_start" and "main" will usually get 100% and leaf functions only what time has actually been spent in them. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27699 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
114c07e6 |
|
22-Sep-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Overdue copyright update. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27698 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
ab30ce0e |
|
22-Sep-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Removed obsolete B_DEBUG_MAX_PROFILE_FUNCTIONS. * Relaxed the stack depth and profiling interval limits a bit. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27697 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
ecfad924 |
|
20-Sep-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Solution for the potential deadlock when needing to flush the profiling buffer during a timer event that interrupted a kernel function: We do now flush the buffer as soon as it is 70% full, *if* we didn't interrupt a kernel function. When the buffer runs full and we still haven't hit a user function, we drop the tick. The number of dropped ticks is recorded and sent to the debugger with the next update message. Reverted the previous partial solution (the temporary disabling of profiling while in debugger support code). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27658 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
eba9a4c3 |
|
20-Sep-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Introduced a per-team counter that is incremented whenever an image is created or deleted (or exec*() has been invoked). The counter is sent with several debugger messages. * Track the image event counter that is used when samples are added to the profiling buffer. If the current team counter differs, we flush the buffer first (sending an update message to the debugger), so that the debugger has a chance to match the addresses to the correct images. * Disable profiling for a thread while it runs in the debugger support code. This fixes potential deadlocks which could occur when a profiling timer event occurred that would require the buffer to be flushed while the thread was just sending something to the debugger or waiting for a command. As it turns out, this is not sufficient either, since we should never try to flush the buffer when the timer event occurred in the kernel, since the thread might hold a lock that the debugger thread could try to acquire. Will implement a more general solution later. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27656 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
4ed8088f |
|
20-Sep-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Added new debugger message B_DEBUGGER_MESSAGE_TEAM_EXEC, sent when exec*() has been called. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27650 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
78b13af6 |
|
19-Sep-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
The handling of a full profiling buffer couldn't work for two reasons: * We can't enable interrupts in an interrupt handler. Instead we use the newly introduced callback feature, which notifies the debugger right before returning from the interrupt. * We didn't indicate that the profiling buffer was full and that the thread shouldn't be profiled ATM. Therefore it could happen that it was profiled while trying to notify the debugger that the profiling buffer was full, resulting in a deadlock. Introduce a respective flag in the thread debug structure. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27649 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
424f833b |
|
19-Sep-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Changed the profiling API: Instead of sending all functions that shall be tracked to the kernel, which then counts the hits, an area is passed to kernel in which the hits are recorded. When the area is full, the debugger is notified. For some reason that part doesn't work yet -- the whole system freezes when waiting for a reply. * Reorganized the profile tool code a bit. For one with respect to the changed API, but also to prepare tracking of image creation/deletion. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27640 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
127f6d39 |
|
15-Sep-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Decreased minimum profiling sampling interval to 100 us. At least in VMware this doesn't produce very good results though. In my tests I only got twice as many hits as with 1 ms, although it should be roughly ten times as many. Might work better on real hardware. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27572 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
cbcebd33 |
|
15-Sep-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Extended the debugger API by sampling-based profiling support. This is still pretty much work in progress. * Introduced init_thread_debug_info() which is used instead of clear_thread_debug_info() when the thread is created. The latter requires former initialization. * user_debug_thread_deleted() is now already invoked in thread_exit(), not in the undertaker. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27531 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
34b3b26b |
|
10-Jan-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Merged branch haiku/branches/developer/bonefish/optimization revision 23139 into trunk, with roughly the following changes (for details svn log the branch): * The int 99 syscall handler is now fully in assembly. * Added a sysenter/sysexit handler and use it on Pentiums that support it (via commpage). * Got rid of i386_handle_trap(). A bit of functionality was moved into the assembly handler which now uses a jump table to call C functions handling the respective interrupt. * Some optimizations to get user debugger support code out of the interrupt handling path. * Introduced a thread::flags fields which allows to skip handling of rare events (signals, user debug enabling/disabling) on the common interrupt handling path. * Got rid of the explicit iframe stack. The iframes can still be retrieved by iterating through the stack frames. * Made the commpage an architecture independent feature. It's used for the real time data stuff (instead of creating a separate area). * The x86 CPU modules can now provide processor optimized versions for common functions (currently memcpy() only). They are used in the kernel and are provided to the userland via commpage entries. * Introduced build system feature allowing easy use of C structure member offsets in assembly code. Changes after merging: * Fixed merge conflict in src/system/kernel/arch/x86/arch_debug.cpp (caused by refactoring and introduction of "call" debugger command). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23370 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
65a7804a |
|
29-Aug-2007 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Set default team debug flags to 0. Threads of a team were unnecessarily stopped, when another thread crashed. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22119 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
44b5d72b |
|
20-Mar-2007 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Added new functions to the debugger API: {set,clear}_debugger_{break,watch}point(), allowing to set/clear break and watchpoints for the calling team. When a break/watchpoint is hit, the team enters the debugger. Handy in situations when the program in question can't really be started in a debugger (or it would be complicated to do so). The functions work only as long as no debugger is installed for the team. We clear the arch specific team and thread debug infos now, when a new debugger is installed, thus clearing break- and watchpoints. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20396 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
37a25a6c |
|
02-Nov-2005 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Fail, if debug_thread() is invoked for the debug nub thread. * To always be on the safe side, thread_hit_debug_event() now checks whether the thread is the debug nub thread. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14655 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
50374cbd |
|
20-Oct-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Changed the signal handling code so that handle_signals() can be called without having the thread lock held and interrupts disabled. Cleaned up the signal handling code, and fixed some minor bugs with blockable vs. non-blockable signals. thread_debug_info was using uint64 for signals sets instead of sigset_t. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14457 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
3eae1fea |
|
25-Mar-2005 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Added support for debugging through exec*(). * Added initialization function. Currently only need to init the single step hack for qemu. * Fixed a deadlock when the nub thread destroyed the debug info. It was waiting for itself. * Moved the filling in the origin info of the debug messages into thread_hit_debug_event_internal(). No need for code duplication. * Writing to user memory can now be partial. We also change the area protection, if it wasn't writable. Necessary for setting software breakpoints. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11996 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
823f4c5b |
|
13-Mar-2005 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Various modifications needed due to the changes in <debugger.h>. * user_debug_break_or_watchpoint_hit() into separate functions for break- and watchpoints. The one for breakpoints gets another parameter which indicates whether the breakpoint was a soft- or hardware breakpoint. This info is also sent to the debugger. git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11714 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
293a59b0 |
|
12-Mar-2005 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* The debug_thread_info records now, which signals the debugger wishes not to be notified. * Added debugger commands for setting/getting of thread signal ignore masks and signal handlers. * Renamed user_debug_fault_occurred() to a more correct user_debug_exception_occurred(). It no longer sends a `stopped' message, but the new one dedicated to exceptions. Additionally the number of the signal is supplied that will be sent, when the thread continues (without indicating to ignore the event). git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11703 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
2eece863 |
|
10-Mar-2005 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Added support for debugger handover. * Implemented _user_wait_for_debugger(). * Reworked a few bits to ensure that after a remove_team_debugger() or after requesting a debugger handover the debugger doesn't get any more messages. * When the debugger is removed or dies, the debugged threads should now cleanup their debug info and continue, instead of waiting at their debug port forever. All the new features are not tested. Will happen, when gdb will be debugged. git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11664 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
6bbfd262 |
|
09-Mar-2005 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
New syscall _kern_wait_for_debugger(). git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11635 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
2562e518 |
|
09-Mar-2005 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Command B_DEBUG_MESSAGE_GET_WHY_STOPPED supports a reply port now. git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11633 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
ae7c619a |
|
01-Mar-2005 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Added architecture specific structure to thread_debug_info. * Added event callbacks for break- and watchpoints and single stepping. git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11520 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
a7ad39fe |
|
27-Feb-2005 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* New locking strategy for the team debug info. It's no longer protected by the team lock, but by a lock in the structure. This is necessary since we can't acquire the team lock while thread switching, for then the thread lock is already held. * Added support for single stepping and break-/watchpoints. git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11503 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
e988d660 |
|
24-Feb-2005 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Added B_TEAM_DEBUG_DEFAULT_FLAGS and B_THREAD_DEBUG_DEFAULT_FLAGS for convenience. * Added/implemented callbacks for almost all missing debug events (team, thread, image creation/deletion, exceptions/faults, signals). * The debugger can now specify how to deal with the event that stopped an event (ignore or handle signals, exceptions/faults). * Implemented B_DEBUGGED_THREAD_GET_WHY_STOPPED debugger message. * The cpu_state is now passed to the debugger with B_DEBUGGER_MESSAGE_THREAD_STOPPED notifications. * Completed _user_debugger() implementation. git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11474 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
bc797a9e |
|
09-Feb-2005 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
The beginnings of userland debugger support. Currently basically only what is needed for strace is implemented. git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11308 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
b959d46dbd2f9087ae860dbced40440c28596a6e |
|
10-Apr-2015 |
Michael Lotz <mmlr@mlotz.ch> |
syscalls: Add get_stack_trace and lookup_symbol syscalls. The get_stack_trace syscall generates a stack trace using the kernel debugging facilities and copies the resulting return address array to the preallocated buffer from userland. It is only possible to get a stack trace of the current thread. The lookup_symbol syscall can be used to look up the symbol and image name corresponding to an address. It can be used to resolve symbols from a stack trace generated by the get_stack_trace syscall. Only symbols of the current team can be looked up. Note that this uses the symbol lookup of the kernel debugger which does not support lookup of all symbols (static functions are missing for example). This is meant to be used in situations where more elaborate stack trace generation, like done in the userland debugging helpers, is not possible due to constraints.
|
#
73ad2473e7874b3702cf5b0fdf4c81b747812ed9 |
|
05-Nov-2013 |
Pawel Dziepak <pdziepak@quarnos.org> |
Remove remaining unnecessary 'volatile' qualifiers
|
#
24df65921befcd0ad0c5c7866118f922da61cb96 |
|
11-Jun-2011 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Merged signals-merge branch into trunk with the following changes: * Reorganized the kernel locking related to threads and teams. * We now discriminate correctly between process and thread signals. Signal handlers have been moved to teams. Fixes #5679. * Implemented real-time signal support, including signal queuing, SA_SIGINFO support, sigqueue(), sigwaitinfo(), sigtimedwait(), waitid(), and the addition of the real-time signal range. Closes #1935 and #2695. * Gave SIGBUS a separate signal number. Fixes #6704. * Implemented <time.h> clock and timer support, and fixed/completed alarm() and [set]itimer(). Closes #5682. * Implemented support for thread cancellation. Closes #5686. * Moved send_signal() from <signal.h> to <OS.h>. Fixes #7554. * Lots over smaller more or less related changes. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42116 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
4535495d80c86e19e2610e7444a4fcefe3e0f8e6 |
|
10-Jan-2011 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Merged the signals branch into trunk, with these changes: * The team and thread kernel structures have been renamed to Team and Thread respectively and moved into the new BKernel namespace. * Several (kernel add-on) sources have been converted from C to C++ since private kernel headers are included that are no longer C compatible. Changes after merging: * Fixed gcc 2 build (warnings mainly in the scary firewire bus manager). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40196 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
27a115f6685cc7821dd2ab6d528d6f3abe70158d |
|
14-Dec-2010 |
Rene Gollent <anevilyak@gmail.com> |
Revert r39846 and r39847. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39849 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
7040b50df5e1483f3e982d5b7ef7c7f79a898b93 |
|
13-Dec-2010 |
Rene Gollent <anevilyak@gmail.com> |
Add support for thread rename and priority change notifications to the debugger API/message set. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39846 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
8b3d3d8a1574eed1d59d052651fefa9af6b1fa6d |
|
25-Feb-2010 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Correctly handle cases when a thread single-steps into the kernel as it can happen on syscalls or "int" instructions. The debug exception handler sets the thread debug flags B_THREAD_DEBUG_STOP and B_THREAD_DEBUG_NOTIFY_SINGLE_STEP (new) and lets the thread continue. Before leaving the kernel the thread is stopped and a single-step notification is sent. Fixes #3487. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35620 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
ac106be5344ddb120fe45c16b1d198001e8f96f7 |
|
27-Sep-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Inherit the disable_debugger() flag to a fork()ed child. load_image() doesn't -- I'm undecided whether it should, too. Fixes #4642. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33330 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
0b11ecb18c9afe14114fac959f698a2bfa5b7230 |
|
21-Jul-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Always include the public arch_debugger.h headers. The structures defined there are prefixed with the respective architecture name. Useful for remote debugging a different architecture. * <x86/arch_debugger.h>: Introduced a structure for the FPU state, so that it isn't left to the debugger. * Removed the _kern_get_thread_cpu_state() syscall. Was originally intended for bdb compatiblity, but isn't really needed. * Kernel x86 arch_get_debug_cpu_state(): The use of fnsave was broken, since it reinits the FPU after saving the state. This resulted in weird results when debugging functions using the FPU. We now use fxsave, if available. Otherwise fnsave + frstor should be used -- not fully implemented yet. Same for arch_set_debug_cpu_state(). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31682 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
b0f12d64f42dc8f5bbabf4cbcdf25178b3eb3749 |
|
23-Jun-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Added transparent software breakpoint support for user debuggers: * The bulk of the work -- i.e. juggling the software and hardware breakpoints, watchpoints, and memory reads/writes -- is done in the new class BreakpointManager. * For the architectures a few capability macros have to be defined, one pointing to the software breakpoint instruction opcode. Done for x86. * Some more simplifications in the user debugger code, made possible by the recently introduced debugger_changed_condition attribute. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31214 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
ba391bcc56771ed5e881a4478d3c6a7273a29f1c |
|
22-Jun-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Added team_debug_info::debugger_changed_condition to serialize changes to the installed team debugger and adjusted the code accordingly. It's not needed yet, but I intend to add support for software breakpoints and those require a bit of uninitialization that needs to be synchronized with debugger changes and can't be done with interrupts disabled. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31194 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
6dcc2a7e00e5e1ae23d3c99b962e61e99a49dfce |
|
22-Jun-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Made destroy_team_debug_info() static, as it's not used outside the source file. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31190 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
568ade58d054e27ce4cd9da0d4e73ecb79563b96 |
|
13-Jun-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
User debugger support: * Generalized address checks. The debugger can now also read the commpage. * Added new syscall _kern_get_thread_cpu_state() to get the CPU state of a not running thread. Introduced arch_get_thread_debug_cpu_state() for that purpose, which is only implemented for x86 ATM (uses the new i386_get_thread_user_iframe()). * Don't allow a debugger to change a thread's "esp" anymore. That's the esp register in the kernel. "user_esp" can still be changed. * Generally set RF (resume flag) in eflags in interrupt handlers, not only after a instruction breakpoint debug exception. This should prevent breakpoints from being triggered more than once (e.g. when the breakpoint is on an instruction that can cause a page fault). I still saw those with bdb in VMware, but that might be a VMware bug. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31045 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
002c9410ed078bfd4f24fa16d49a845867d3fe2b |
|
29-Mar-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Missing "struct thread" declaration, breaking the PPC build. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29780 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
e1975d335369d3bec6473cc1323c65a00e8dc25c |
|
23-Feb-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* When a team debugger is installed automatically, the thread causing that is stored now. * Extended the debugger message for B_DEBUGGER_MESSAGE_HANDED_OVER by the causing thread. * Also send B_DEBUGGER_MESSAGE_HANDED_OVER to the debugger to which the team was handed over. The message will be the very first one the debugger gets from the team in question. * Some harmless refactoring (added thread_hit_serious_debug_event()). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29302 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
f965a969b17376e47d9d2948ba4a5cfce2a785d0 |
|
28-Sep-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Extended the profiling API. When using the variable stack trace depth buffer format, the buffer can now also contain other events than just stack traces. ATM these are only references to the image events (created/deleted). Therefore we no longer have to flush the profiling buffer after such an event, since the debugger can exactly match the samples. Since we couldn't flush when the profiling timer hit while the thread was in the kernel, that wasn't working that well anyway. "profile -f" fails to translate stack trace addresses only very rarely, now. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27775 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
5181b35beebed8380025b8de02756bb0137f9721 |
|
23-Sep-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Introduced a separate flag for indicating that disable_debugger() had been called for a team, and fail installing the default debugger if it is set. This makes disable_debugger() actually work. Fixes bug #2763. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27713 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
0135e2e3242021dd407037b1974bb7e221d5255b |
|
22-Sep-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Increased the maximum profiling caller stack depth significantly. * Extended the profiling API by an option to record a variable number of samples per tick. The stack depth is used as a maximum. * Added new option "-f" to the "profile" tool. When specified it increments the hit counts of all symbols in the full available caller stack. I.e. the resulting hit counts will approximate the total time spent in each function or any function directly or indirectly called by it. Thus "_start" and "main" will usually get 100% and leaf functions only what time has actually been spent in them. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27699 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
114c07e6e2bb2ce21ff07bd81f9298993b9c5f10 |
|
22-Sep-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Overdue copyright update. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27698 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
ab30ce0e84996f5ba0a4afb07fee02b243db5db6 |
|
22-Sep-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Removed obsolete B_DEBUG_MAX_PROFILE_FUNCTIONS. * Relaxed the stack depth and profiling interval limits a bit. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27697 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
ecfad924e044a187d0ac9fc4561b45b285e7f8c5 |
|
20-Sep-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Solution for the potential deadlock when needing to flush the profiling buffer during a timer event that interrupted a kernel function: We do now flush the buffer as soon as it is 70% full, *if* we didn't interrupt a kernel function. When the buffer runs full and we still haven't hit a user function, we drop the tick. The number of dropped ticks is recorded and sent to the debugger with the next update message. Reverted the previous partial solution (the temporary disabling of profiling while in debugger support code). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27658 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
eba9a4c3ee6e7cb89df681a845fb1eaf581fe38e |
|
20-Sep-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Introduced a per-team counter that is incremented whenever an image is created or deleted (or exec*() has been invoked). The counter is sent with several debugger messages. * Track the image event counter that is used when samples are added to the profiling buffer. If the current team counter differs, we flush the buffer first (sending an update message to the debugger), so that the debugger has a chance to match the addresses to the correct images. * Disable profiling for a thread while it runs in the debugger support code. This fixes potential deadlocks which could occur when a profiling timer event occurred that would require the buffer to be flushed while the thread was just sending something to the debugger or waiting for a command. As it turns out, this is not sufficient either, since we should never try to flush the buffer when the timer event occurred in the kernel, since the thread might hold a lock that the debugger thread could try to acquire. Will implement a more general solution later. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27656 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
4ed8088f9a98fa69526c08721087a942becc7545 |
|
20-Sep-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Added new debugger message B_DEBUGGER_MESSAGE_TEAM_EXEC, sent when exec*() has been called. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27650 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
78b13af677aac2046c677efbcd454ab91a59e5b5 |
|
19-Sep-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
The handling of a full profiling buffer couldn't work for two reasons: * We can't enable interrupts in an interrupt handler. Instead we use the newly introduced callback feature, which notifies the debugger right before returning from the interrupt. * We didn't indicate that the profiling buffer was full and that the thread shouldn't be profiled ATM. Therefore it could happen that it was profiled while trying to notify the debugger that the profiling buffer was full, resulting in a deadlock. Introduce a respective flag in the thread debug structure. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27649 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
424f833bc9646c8d5a317485c96f4371fa3a7636 |
|
19-Sep-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Changed the profiling API: Instead of sending all functions that shall be tracked to the kernel, which then counts the hits, an area is passed to kernel in which the hits are recorded. When the area is full, the debugger is notified. For some reason that part doesn't work yet -- the whole system freezes when waiting for a reply. * Reorganized the profile tool code a bit. For one with respect to the changed API, but also to prepare tracking of image creation/deletion. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27640 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
127f6d39efccf6df9b75ef60db8c709db939ef23 |
|
15-Sep-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Decreased minimum profiling sampling interval to 100 us. At least in VMware this doesn't produce very good results though. In my tests I only got twice as many hits as with 1 ms, although it should be roughly ten times as many. Might work better on real hardware. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27572 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
cbcebd3330d8701dd854e5958a28bf7e1af50df4 |
|
15-Sep-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Extended the debugger API by sampling-based profiling support. This is still pretty much work in progress. * Introduced init_thread_debug_info() which is used instead of clear_thread_debug_info() when the thread is created. The latter requires former initialization. * user_debug_thread_deleted() is now already invoked in thread_exit(), not in the undertaker. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27531 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
34b3b26b3b8c46ba46ddde037b10dd173f4936d6 |
|
10-Jan-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Merged branch haiku/branches/developer/bonefish/optimization revision 23139 into trunk, with roughly the following changes (for details svn log the branch): * The int 99 syscall handler is now fully in assembly. * Added a sysenter/sysexit handler and use it on Pentiums that support it (via commpage). * Got rid of i386_handle_trap(). A bit of functionality was moved into the assembly handler which now uses a jump table to call C functions handling the respective interrupt. * Some optimizations to get user debugger support code out of the interrupt handling path. * Introduced a thread::flags fields which allows to skip handling of rare events (signals, user debug enabling/disabling) on the common interrupt handling path. * Got rid of the explicit iframe stack. The iframes can still be retrieved by iterating through the stack frames. * Made the commpage an architecture independent feature. It's used for the real time data stuff (instead of creating a separate area). * The x86 CPU modules can now provide processor optimized versions for common functions (currently memcpy() only). They are used in the kernel and are provided to the userland via commpage entries. * Introduced build system feature allowing easy use of C structure member offsets in assembly code. Changes after merging: * Fixed merge conflict in src/system/kernel/arch/x86/arch_debug.cpp (caused by refactoring and introduction of "call" debugger command). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23370 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
65a7804abe5c5f41ec6ed589d47f77535a125d56 |
|
29-Aug-2007 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Set default team debug flags to 0. Threads of a team were unnecessarily stopped, when another thread crashed. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22119 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
44b5d72b5aeb8bba2c348c27022e7cfe1c96f456 |
|
20-Mar-2007 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Added new functions to the debugger API: {set,clear}_debugger_{break,watch}point(), allowing to set/clear break and watchpoints for the calling team. When a break/watchpoint is hit, the team enters the debugger. Handy in situations when the program in question can't really be started in a debugger (or it would be complicated to do so). The functions work only as long as no debugger is installed for the team. We clear the arch specific team and thread debug infos now, when a new debugger is installed, thus clearing break- and watchpoints. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20396 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
37a25a6ceb750024cbc7ba8241099c2efcc9050c |
|
02-Nov-2005 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Fail, if debug_thread() is invoked for the debug nub thread. * To always be on the safe side, thread_hit_debug_event() now checks whether the thread is the debug nub thread. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14655 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
50374cbdcac9fc96ae187fff7b7a75151a508d65 |
|
20-Oct-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Changed the signal handling code so that handle_signals() can be called without having the thread lock held and interrupts disabled. Cleaned up the signal handling code, and fixed some minor bugs with blockable vs. non-blockable signals. thread_debug_info was using uint64 for signals sets instead of sigset_t. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14457 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
3eae1fea40aa5ecdbc78789c8197964e3861c08d |
|
25-Mar-2005 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Added support for debugging through exec*(). * Added initialization function. Currently only need to init the single step hack for qemu. * Fixed a deadlock when the nub thread destroyed the debug info. It was waiting for itself. * Moved the filling in the origin info of the debug messages into thread_hit_debug_event_internal(). No need for code duplication. * Writing to user memory can now be partial. We also change the area protection, if it wasn't writable. Necessary for setting software breakpoints. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11996 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
823f4c5bf4611a2ff646868aff830060d5ee36cd |
|
13-Mar-2005 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Various modifications needed due to the changes in <debugger.h>. * user_debug_break_or_watchpoint_hit() into separate functions for break- and watchpoints. The one for breakpoints gets another parameter which indicates whether the breakpoint was a soft- or hardware breakpoint. This info is also sent to the debugger. git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11714 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
293a59b0e9201afa1ab55e8def873c510a98b358 |
|
12-Mar-2005 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* The debug_thread_info records now, which signals the debugger wishes not to be notified. * Added debugger commands for setting/getting of thread signal ignore masks and signal handlers. * Renamed user_debug_fault_occurred() to a more correct user_debug_exception_occurred(). It no longer sends a `stopped' message, but the new one dedicated to exceptions. Additionally the number of the signal is supplied that will be sent, when the thread continues (without indicating to ignore the event). git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11703 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
2eece8633cd548e931fd27d8cb6b0e8e8352fe13 |
|
10-Mar-2005 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Added support for debugger handover. * Implemented _user_wait_for_debugger(). * Reworked a few bits to ensure that after a remove_team_debugger() or after requesting a debugger handover the debugger doesn't get any more messages. * When the debugger is removed or dies, the debugged threads should now cleanup their debug info and continue, instead of waiting at their debug port forever. All the new features are not tested. Will happen, when gdb will be debugged. git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11664 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
6bbfd2627b3515f258630235a1c21a583cfe482e |
|
09-Mar-2005 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
New syscall _kern_wait_for_debugger(). git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11635 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
2562e5185ceebf76f6db759161e6300b2de6f4e6 |
|
09-Mar-2005 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Command B_DEBUG_MESSAGE_GET_WHY_STOPPED supports a reply port now. git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11633 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
ae7c619aaeb01051fe697079b8e3c1fdfaf955dd |
|
01-Mar-2005 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Added architecture specific structure to thread_debug_info. * Added event callbacks for break- and watchpoints and single stepping. git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11520 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
a7ad39fe099d10d14ecaac78a0c7b29101a43f04 |
|
27-Feb-2005 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* New locking strategy for the team debug info. It's no longer protected by the team lock, but by a lock in the structure. This is necessary since we can't acquire the team lock while thread switching, for then the thread lock is already held. * Added support for single stepping and break-/watchpoints. git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11503 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
e988d660225608f53ba8bc7db8758ac04581befd |
|
24-Feb-2005 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Added B_TEAM_DEBUG_DEFAULT_FLAGS and B_THREAD_DEBUG_DEFAULT_FLAGS for convenience. * Added/implemented callbacks for almost all missing debug events (team, thread, image creation/deletion, exceptions/faults, signals). * The debugger can now specify how to deal with the event that stopped an event (ignore or handle signals, exceptions/faults). * Implemented B_DEBUGGED_THREAD_GET_WHY_STOPPED debugger message. * The cpu_state is now passed to the debugger with B_DEBUGGER_MESSAGE_THREAD_STOPPED notifications. * Completed _user_debugger() implementation. git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11474 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
bc797a9ee5f0a730586a71ac47201da724a6bccb |
|
09-Feb-2005 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
The beginnings of userland debugger support. Currently basically only what is needed for strace is implemented. git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11308 a95241bf-73f2-0310-859d-f6bbb57e9c96
|