* 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
Most of the debug events had their own message, but some were grouped
into this `stopped' message with a `why' field to describe what kind
of event it actually was. Hence the user had to check two levels until
they could know what event occurred. So I got rid of this message and
provided separate messages for the concerned events.
* Got rid of B_DEBUG_MESSAGE_GET_WHY_STOPPED and introduced
B_DEBUG_MESSAGE_GET_CPU_STATE which is pretty much the same.
* Put B_DEBUG_MESSAGE_RUN_THREAD and B_DEBUG_MESSAGE_STEP_THREAD into
a single B_DEBUG_MESSAGE_CONTINUE_THREAD message with a boolean
`single_step' field.
* get_debug_why_stopped_string() -> get_debug_message_string().
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11712 a95241bf-73f2-0310-859d-f6bbb57e9c96
of a signal.
* Added sigaction_etc(). It's just a sigaction() for which the thread
in question can be specified.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11704 a95241bf-73f2-0310-859d-f6bbb57e9c96
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
get_debug_exception_string() to get a user-readable string for an
exception type.
* Added more signal support. Now the debugger can set per thread which
signals it wishes to be notified of. It can also just ignore the next
occurrence of a signal.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11701 a95241bf-73f2-0310-859d-f6bbb57e9c96
(maybe this should better go into a private header?). If given the function
waits till the loader is done with loading and relocating the executable.
Otherwise it returns before the loader starts.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11690 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Added _kern_image_relocated() and _kern_loading_app_failed(), which
are invoked by the loader to provide the kernel with more info.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11689 a95241bf-73f2-0310-859d-f6bbb57e9c96
* 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
debugger. After successful reply to the message the debugger won't receive
any more messages from the debugged team. The mechanism is completely
transparent to the target debugger. It simply installs itself as debugger
for the team.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11662 a95241bf-73f2-0310-859d-f6bbb57e9c96
zooey agreed when discussing this (and we hope this don't break anything)
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11660 a95241bf-73f2-0310-859d-f6bbb57e9c96
threadID parameter to spawn_kernel_thread_etc(). It's now possible to
set the ID of a new thread. Used in team.c to make team ID and the ID of
the main thread equal.
Fascinatingly the two added functions prompt my compiler to issue
`missing prototype' warnings, although those are obviously there. It would
be nice if someone could solve that riddle.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11621 a95241bf-73f2-0310-859d-f6bbb57e9c96
we only have 3 debug registers available for break-/watchpoints.
* Added definitions for debug status register DR6. Reordered DR7 defs to
ascending order. Added definitions for the EFLAGS flags we need.
* Added arch_thread_debug_info structure and related definitions.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11525 a95241bf-73f2-0310-859d-f6bbb57e9c96
needed to get the topmost user iframe. Added i386_get_user_iframe() for
exactly that purpose.
* Added reinitialization of user debugging for the new thread when
switching the context.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11523 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Made the parameter for restoring the FPU state const.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11522 a95241bf-73f2-0310-859d-f6bbb57e9c96
* 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
* Removed orig_e{a,d}x. We will always report those in e{a,d}x.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11519 a95241bf-73f2-0310-859d-f6bbb57e9c96
debug infos.
* Added function for setting the CPU state.
* Added functions for setting break-/watchpoints.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11507 a95241bf-73f2-0310-859d-f6bbb57e9c96
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
translation for the debug_why_stopped codes.
* Added nub_port member to debug_origin structure, so that now all
synchronous messages to the debugger also include the debug nub port.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11489 a95241bf-73f2-0310-859d-f6bbb57e9c96