Added syscall _kern_kernel_debugger() to enter the kernel debugger.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31965 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Ingo Weinhold
2009-07-30 12:35:42 +00:00
parent eac9c5450f
commit 213d2d8f9d
3 changed files with 23 additions and 0 deletions
+1
View File
@@ -161,6 +161,7 @@ extern status_t debug_get_next_demangled_argument(uint32* _cookie,
extern struct thread* debug_set_debugged_thread(struct thread* thread);
extern struct thread* debug_get_debugged_thread();
extern status_t _user_kernel_debugger(const char *message);
extern void _user_debug_output(const char *userString);
#ifdef __cplusplus
+1
View File
@@ -420,6 +420,7 @@ extern status_t _kern_get_port_message_info_etc(port_id port,
bigtime_t timeout);
// debug support functions
extern status_t _kern_kernel_debugger(const char *message);
extern void _kern_debugger(const char *message);
extern int _kern_disable_debugger(int state);
+21
View File
@@ -1660,6 +1660,27 @@ debug_get_debugged_thread()
// userland syscalls
status_t
_user_kernel_debugger(const char *userMessage)
{
if (geteuid() != 0)
return B_NOT_ALLOWED;
char message[512];
strcpy(message, "USER: ");
size_t len = strlen(message);
if (userMessage == NULL || !IS_USER_ADDRESS(userMessage)
|| user_strlcpy(message + len, userMessage, sizeof(message) - len)
< 0) {
return B_BAD_ADDRESS;
}
kernel_debugger(message);
return B_OK;
}
void
_user_debug_output(const char* userString)
{