In case of a debugger() call now also prints the debug message. Makes use of the new libdebug.so.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11926 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Ingo Weinhold
2005-03-20 22:06:13 +00:00
parent 0a064776ae
commit 362e09b124
2 changed files with 30 additions and 2 deletions
+28 -2
View File
@@ -13,7 +13,7 @@
#include <Application.h> #include <Application.h>
#include <Invoker.h> #include <Invoker.h>
#include <debugger.h> #include <debug_support.h>
#include <util/DoublyLinkedList.h> #include <util/DoublyLinkedList.h>
@@ -162,8 +162,34 @@ ThreadDebugHandler::HandleMessage(DebugMessage *message)
message->Data().exception_occurred.exception, buffer, message->Data().exception_occurred.exception, buffer,
sizeof(buffer)); sizeof(buffer));
break; break;
case B_DEBUGGER_MESSAGE_DEBUGGER_CALL: case B_DEBUGGER_MESSAGE_DEBUGGER_CALL:
// TODO: Display the debugger message! {
// get the debugger() message
void *messageAddress = message->Data().debugger_call.message;
char messageBuffer[128];
debug_context context;
status_t error = init_debug_context(&context,
message->Data().origin.nub_port);
if (error == B_OK) {
ssize_t bytesRead = debug_read_string(&context, messageAddress,
messageBuffer, sizeof(messageBuffer));
if (bytesRead < 0)
error = bytesRead;
destroy_debug_context(&context);
}
if (error == B_OK) {
sprintf(buffer, "Debugger call: `%s'", messageBuffer);
} else {
snprintf(buffer, sizeof(buffer), "Debugger call: %p "
"(Failed to read message: %s)", messageAddress,
strerror(error));
}
break;
}
case B_DEBUGGER_MESSAGE_THREAD_DEBUGGED: case B_DEBUGGER_MESSAGE_THREAD_DEBUGGED:
case B_DEBUGGER_MESSAGE_BREAKPOINT_HIT: case B_DEBUGGER_MESSAGE_BREAKPOINT_HIT:
case B_DEBUGGER_MESSAGE_WATCHPOINT_HIT: case B_DEBUGGER_MESSAGE_WATCHPOINT_HIT:
+2
View File
@@ -1,5 +1,6 @@
SubDir OBOS_TOP src servers debug ; SubDir OBOS_TOP src servers debug ;
UsePrivateHeaders debug ;
UsePrivateHeaders kernel ; UsePrivateHeaders kernel ;
AddResources debug_server : debug_server.rdef ; AddResources debug_server : debug_server.rdef ;
@@ -10,5 +11,6 @@ Server debug_server
: :
libroot.so # Haiku libroot libroot.so # Haiku libroot
libbe.so # Haiku libbe libbe.so # Haiku libbe
libdebug.so
stdc++.r4 stdc++.r4
; ;