diff options
author | phk <phk@FreeBSD.org> | 2004-02-24 22:51:42 +0000 |
---|---|---|
committer | phk <phk@FreeBSD.org> | 2004-02-24 22:51:42 +0000 |
commit | 340d0adc733a3ca225dfd8574971cacbaefe3223 (patch) | |
tree | bb113fe94ae9c5f851fb3741675c440b2451d5be /sys | |
parent | 92d93444db44f4a55e1094808e37a1427824ef34 (diff) | |
download | FreeBSD-src-340d0adc733a3ca225dfd8574971cacbaefe3223.zip FreeBSD-src-340d0adc733a3ca225dfd8574971cacbaefe3223.tar.gz |
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.
~
~
~
Diffstat (limited to 'sys')
-rw-r--r-- | sys/conf/NOTES | 5 | ||||
-rw-r--r-- | sys/conf/options | 1 | ||||
-rw-r--r-- | sys/ddb/db_sym.c | 6 |
3 files changed, 12 insertions, 0 deletions
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 <ddb/ddb.h> #include <ddb/db_sym.h> +#include <opt_ddb.h> + /* * 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) { |