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