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 <Invoker.h>
#include <debugger.h>
#include <debug_support.h>
#include <util/DoublyLinkedList.h>
@@ -162,8 +162,34 @@ ThreadDebugHandler::HandleMessage(DebugMessage *message)
message->Data().exception_occurred.exception, buffer,
sizeof(buffer));
break;
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_BREAKPOINT_HIT:
case B_DEBUGGER_MESSAGE_WATCHPOINT_HIT:
+2
View File
@@ -1,5 +1,6 @@
SubDir OBOS_TOP src servers debug ;
UsePrivateHeaders debug ;
UsePrivateHeaders kernel ;
AddResources debug_server : debug_server.rdef ;
@@ -10,5 +11,6 @@ Server debug_server
:
libroot.so # Haiku libroot
libbe.so # Haiku libbe
libdebug.so
stdc++.r4
;