Some simplifications and cleanup.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11483 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -287,37 +287,6 @@ init_syscalls()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// print_syscall
|
|
||||||
static
|
|
||||||
void
|
|
||||||
print_syscall(debug_pre_syscall &message, MemoryReader &memoryReader,
|
|
||||||
bool printArguments, bool getContents, bool printReturnValue,
|
|
||||||
bool colorize)
|
|
||||||
{
|
|
||||||
int32 syscallNumber = message.syscall;
|
|
||||||
Syscall *syscall = sSyscallVector[syscallNumber];
|
|
||||||
|
|
||||||
// print syscall name
|
|
||||||
printf("[%6ld] %s(", message.thread, syscall->Name().c_str());
|
|
||||||
|
|
||||||
// print arguments
|
|
||||||
if (printArguments) {
|
|
||||||
int32 count = syscall->CountParameters();
|
|
||||||
for (int32 i = 0; i < count; i++) {
|
|
||||||
// get the value
|
|
||||||
Parameter *parameter = syscall->ParameterAt(i);
|
|
||||||
TypeHandler *handler = parameter->Handler();
|
|
||||||
string value = handler->GetParameterValue(
|
|
||||||
(char*)message.args + parameter->Offset(), getContents,
|
|
||||||
memoryReader);
|
|
||||||
|
|
||||||
printf((i > 0 ? ", %s" : "%s"), value.c_str());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
printf(") pre\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
// print_syscall
|
// print_syscall
|
||||||
static
|
static
|
||||||
void
|
void
|
||||||
@@ -330,10 +299,10 @@ print_syscall(debug_post_syscall &message, MemoryReader &memoryReader,
|
|||||||
|
|
||||||
// print syscall name
|
// print syscall name
|
||||||
if (colorize) {
|
if (colorize) {
|
||||||
printf("[%6ld] %s%s%s(", message.thread, kTerminalTextRed,
|
printf("[%6ld] %s%s%s(", message.origin.thread, kTerminalTextRed,
|
||||||
syscall->Name().c_str(), kTerminalTextNormal);
|
syscall->Name().c_str(), kTerminalTextNormal);
|
||||||
} else {
|
} else {
|
||||||
printf("[%6ld] %s(", message.thread, syscall->Name().c_str());
|
printf("[%6ld] %s(", message.origin.thread, syscall->Name().c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
// print arguments
|
// print arguments
|
||||||
@@ -523,37 +492,32 @@ main(int argc, const char *const *argv)
|
|||||||
|
|
||||||
thread_id concernedThread = -1;
|
thread_id concernedThread = -1;
|
||||||
switch (code) {
|
switch (code) {
|
||||||
case B_DEBUGGER_MESSAGE_THREAD_STOPPED:
|
|
||||||
concernedThread = message.thread_stopped.thread;
|
|
||||||
printf("B_DEBUGGER_MESSAGE_THREAD_STOPPED: thread: %ld\n", concernedThread);
|
|
||||||
break;
|
|
||||||
case B_DEBUGGER_MESSAGE_PRE_SYSCALL:
|
|
||||||
{
|
|
||||||
concernedThread = message.pre_syscall.thread;
|
|
||||||
//printf("B_DEBUGGER_MESSAGE_PRE_SYSCALL: thread: %ld\n", concernedThread);
|
|
||||||
print_syscall(message.pre_syscall, memoryReader,
|
|
||||||
printArguments, !fastMode, printReturnValues, colorize);
|
|
||||||
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case B_DEBUGGER_MESSAGE_SIGNAL_RECEIVED:
|
|
||||||
concernedThread = message.signal_received.thread;
|
|
||||||
printf("B_DEBUGGER_MESSAGE_SIGNAL_RECEIVED: thread: %ld\n", concernedThread);
|
|
||||||
break;
|
|
||||||
case B_DEBUGGER_MESSAGE_POST_SYSCALL:
|
case B_DEBUGGER_MESSAGE_POST_SYSCALL:
|
||||||
{
|
{
|
||||||
concernedThread = message.post_syscall.thread;
|
concernedThread = message.origin.thread;
|
||||||
print_syscall(message.post_syscall, memoryReader,
|
print_syscall(message.post_syscall, memoryReader,
|
||||||
printArguments, !fastMode, printReturnValues, colorize);
|
printArguments, !fastMode, printReturnValues, colorize);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
case B_DEBUGGER_MESSAGE_THREAD_STOPPED:
|
||||||
|
case B_DEBUGGER_MESSAGE_PRE_SYSCALL:
|
||||||
|
case B_DEBUGGER_MESSAGE_SIGNAL_RECEIVED:
|
||||||
|
case B_DEBUGGER_MESSAGE_TEAM_CREATED:
|
||||||
|
case B_DEBUGGER_MESSAGE_THREAD_CREATED:
|
||||||
|
case B_DEBUGGER_MESSAGE_IMAGE_CREATED:
|
||||||
|
case B_DEBUGGER_MESSAGE_IMAGE_DELETED:
|
||||||
|
concernedThread = message.origin.thread;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case B_DEBUGGER_MESSAGE_THREAD_DELETED:
|
||||||
|
// nothing to do: a thread was deleted
|
||||||
|
break;
|
||||||
|
|
||||||
case B_DEBUGGER_MESSAGE_TEAM_DELETED:
|
case B_DEBUGGER_MESSAGE_TEAM_DELETED:
|
||||||
{
|
// the debugged team is gone
|
||||||
printf("B_DEBUGGER_MESSAGE_TEAM_DELETED: team: %ld\n",
|
|
||||||
message.team_deleted.team);
|
|
||||||
exit(0);
|
exit(0);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// tell the thread to continue
|
// tell the thread to continue
|
||||||
|
|||||||
Reference in New Issue
Block a user