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:
@@ -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:
|
||||
|
||||
@@ -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
|
||||
;
|
||||
|
||||
Reference in New Issue
Block a user