From 340d0adc733a3ca225dfd8574971cacbaefe3223 Mon Sep 17 00:00:00 2001 From: phk Date: Tue, 24 Feb 2004 22:51:42 +0000 Subject: Add DDB_NUMSYM option which in addition to the symbolic representation also prints the actual numerical value of the symbol in question. Users of addr2line(1) will be less proficient in hex arithmetic as a consequence. This amongst other things means that traceback lines change from: siointr1(c4016800,c073bda0,0,c06b699c,69f) at siointr1+0xc5 to siointr1(c4016800,c073bda0,0,c06b699c,69f) at 0xc062b0bd = siointr1+0xc5 I made this an option to avoid bikesheds. ~ ~ ~ --- sys/conf/NOTES | 5 +++++ sys/conf/options | 1 + sys/ddb/db_sym.c | 6 ++++++ 3 files changed, 12 insertions(+) (limited to 'sys') diff --git a/sys/conf/NOTES b/sys/conf/NOTES index b7f3a90..72c1d45 100644 --- a/sys/conf/NOTES +++ b/sys/conf/NOTES @@ -234,6 +234,11 @@ options SYSVMSG options DDB # +# print the actual numerical value of symbols in addition to the +# symbolic representation +options DDB_NUMSYM + +# # Use direct symbol lookup routines for ddb instead of the kernel linker # ones, so that symbols (mostly) work before the kernel linker has been # initialized. This is not the default because it breaks ddb's lookup of diff --git a/sys/conf/options b/sys/conf/options index d9c37d6..389d7b3 100644 --- a/sys/conf/options +++ b/sys/conf/options @@ -84,6 +84,7 @@ CY_PCI_FASTINTR DDB DDB_NOKLDSYM opt_ddb.h DDB_TRACE +DDB_NUMSYM opt_ddb.h DDB_UNATTENDED GDB_REMOTE_CHAT opt_ddb.h GDBSPEED opt_ddb.h diff --git a/sys/ddb/db_sym.c b/sys/ddb/db_sym.c index 2ab3ede..5714950 100644 --- a/sys/ddb/db_sym.c +++ b/sys/ddb/db_sym.c @@ -37,6 +37,8 @@ __FBSDID("$FreeBSD$"); #include #include +#include + /* * Multiple symbol tables */ @@ -308,7 +310,11 @@ db_printsym(off, strategy) db_printf("%#lr", (unsigned long)off); return; } +#ifdef DDB_NUMSYM + db_printf("%#lr = %s", (unsigned long)off, name); +#else db_printf("%s", name); +#endif if (d) db_printf("+%+#lr", (long)d); if (strategy == DB_STGY_PROC) { -- cgit v1.1