* The "ints" KDL command now also prints function names, and the interrupt

function argument data.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27784 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Axel Dörfler
2008-09-29 18:06:38 +00:00
parent 8e28c17f2f
commit d99477440f
+15 -3
View File
@@ -16,6 +16,7 @@
#include <arch/debug_console.h> #include <arch/debug_console.h>
#include <arch/int.h> #include <arch/int.h>
#include <boot/kernel_args.h> #include <boot/kernel_args.h>
#include <elf.h>
#include <util/kqueue.h> #include <util/kqueue.h>
#include <smp.h> #include <smp.h>
@@ -78,10 +79,21 @@ dump_int_statistics(int argc, char **argv)
for (io = sVectors[i].handler_list.next; for (io = sVectors[i].handler_list.next;
io != &sVectors[i].handler_list; io = io->next) { io != &sVectors[i].handler_list; io = io->next) {
kprintf("\t%p", io->func); const char *symbol, *imageName;
bool exactMatch;
addr_t address, baseAddress;
status_t error = elf_debug_lookup_symbol_address((addr_t)io->func,
&baseAddress, &symbol, &imageName, &exactMatch);
if (error == B_OK && exactMatch) {
if (strchr(imageName, '/') != NULL)
imageName = strrchr(imageName, '/') + 1;
kprintf("\t%s:%s (%p), data %p\n", imageName, symbol, io->func,
io->data);
} else
kprintf("\t%p, data %p\n", io->func, io->data);
} }
if (sVectors[i].handler_list.next != &sVectors[i].handler_list)
kprintf("\n");
} }
return 0; return 0;
} }