* Removed SIGKILLTHR from BLOCKABLE_SIGS.
* Made header C++ safe.
* Added function is_kill_signal_pending(), returning true, if a
SIGKILL[THR] is pending for the current thread.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11487 a95241bf-73f2-0310-859d-f6bbb57e9c96
interruptable by SIGKILL[THR], even if B_CAN_INTERRUPT is not set. Not
sure, if this is the best solution, but it works.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11484 a95241bf-73f2-0310-859d-f6bbb57e9c96
- If the thread's B_THREAD_DEBUG_STOP flag is set, it is now always
stopped before handling the signals. Unless a SIGKILL[THR] signal is
pending.
- Also notify the debugger, when a signal is ignored.
* The signal's sigaction structure is additionally passed to the debugger
now.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11478 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Now we deal correctly with thread debug flags (child threads inherit
the parent ones, save for syscall tracing in which case it needs to
be specified explicitly).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11477 a95241bf-73f2-0310-859d-f6bbb57e9c96
In the first case this is probably too early, since the image is not
really loaded at that time by the loader. We should probably introduce
a syscall the loader can invoke for that purpose.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11475 a95241bf-73f2-0310-859d-f6bbb57e9c96
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
* team debug flags:
- Added flags for team creation, thread events (creation,
deletion), and image events (creation, deletion).
- Got rid of B_TEAM_DEBUG_SYSCALL_FAST_TRACE. We always send the syscall
arguments. The overhead should be neglectable.
- Added B_TEAM_DEBUG_STOP_NEW_THREADS.
* Added debugger notification messages for signals, team, thread and
image events.
* Added debug request B_DEBUG_MESSAGE_GET_WHY_STOPPED.
* When continuing a thread, the debugger can now specify how to deal with
the occurred event (ignore or handle).
* More data in the signal received notification message.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11468 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Implemented finding programs in the PATH.
* Added human readable error codes for status_t and ssize_t return values.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11448 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Now syscall names and parameters are printed. const char* parameters
and return values are retrieved from the client and printed as string.
* Missing are still color output (does consoled support that?) and
searching for given commands in the PATH. Nothing besides the standard
mode has been tested yet, so it's probably not working.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11345 a95241bf-73f2-0310-859d-f6bbb57e9c96
* The syscall arguments are copied into the respective messages to the
debugger now.
* Optimized the nub thread memory reading command. Now only as many bytes
are sent to the debugger as were actually read.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11343 a95241bf-73f2-0310-859d-f6bbb57e9c96
pointers and overall parameters size for the kernel and some more
sophisticated code for strace.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11339 a95241bf-73f2-0310-859d-f6bbb57e9c96
a respective message, when the debugged team has been deleted.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11316 a95241bf-73f2-0310-859d-f6bbb57e9c96
Unless a good reason appears not to, we'll break binary compatibility here.
BDB could be considered one, but we need a replacement for it anyway. We
strive to port GDB and a couple of changes in the debugger API will make
that easier.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11307 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Removed ARM support.
* Removed PEF references.
* Added structure and constants for pre syscall tracing.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11245 a95241bf-73f2-0310-859d-f6bbb57e9c96
notify_listener() and send_notification() can be dropped.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11219 a95241bf-73f2-0310-859d-f6bbb57e9c96
link member in the element class. Usually more comfortable for structs.
* Added Add() method as synonym for Insert().
* Made fGetLink member static to save memory in objects using it.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11188 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Added resolve_mount_point_to_volume_root() version for external use
(by the node monitor).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11159 a95241bf-73f2-0310-859d-f6bbb57e9c96
<disk_device_manager/KDiskDeviceUtils.h> into <util/AutoLock.h>.
Added instantiations for recursive locks (moved from vfs.cpp) and
mutexes.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11157 a95241bf-73f2-0310-859d-f6bbb57e9c96
send_notification() interface, which I personally find quite ugly.
Each notification type gets its own function, which makes very clear,
which parameters are to be supplied. Also note the addition of the
`name' parameter for the `entry removed' notification and `fromName'
for `entry moved'.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11145 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Added a class for handling "send message" commands and install by
default. At least in theory messages issued by the kernel should now
be delivered to the target. Still untested.
* Added lock to protect the command handler map.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11144 a95241bf-73f2-0310-859d-f6bbb57e9c96
messages.
* We now maintain a second message list per port, which is sorted by
timeout time. Thus we can drop timed out messages as early as possible.
* Fixed a bug which caused messages to disappear in the port list.
* Now delete a port not only when an error occurred when delivering a
message, but also when it is empty.
* More debug output.
Seems to be working well now.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11142 a95241bf-73f2-0310-859d-f6bbb57e9c96
with respect to whether the delivery still works when the port is full.
It seems to do (now).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11139 a95241bf-73f2-0310-859d-f6bbb57e9c96
* In BMessage::Header::ReadFrom(DataIO &) the checksum was checked before
the fBodySize field was initialized, which could make
BMessage::Unflatten() fail.
* Calculate the header checksum now by writing the header to a buffer and
checksumming that. This is simpler and avoids problems when something
else is written than is actually stored in the header (e.g. when a
preferred target token is replaced by B_PREFERRED_TOKEN).
While the BMessage unit tests always passed, now the other App Kit tests
pass as well.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11130 a95241bf-73f2-0310-859d-f6bbb57e9c96
a separate class. This allowed to improve _SendFlattenedMessage() to
deal properly with flattened BMessages as well.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11116 a95241bf-73f2-0310-859d-f6bbb57e9c96
proper private static BMessage members and made them accessible through
BMessage::Private. Got rid of unused _reconstruct_message_().
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11106 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Removed 1500 lines of unused non-template-madness code. We have version
control to resurrect it, if we ever wish to.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11105 a95241bf-73f2-0310-859d-f6bbb57e9c96
the message will be finally dropped. Makes sense for periodic message
runners for instance.
* Set the target of a BMessage before flattening it. Thus there will be
space in the flattened header for it.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11071 a95241bf-73f2-0310-859d-f6bbb57e9c96