Debugging the ZDB debugger.
Zaphod Beeblebrox
zbeeble at gmail.com
Fri Nov 21 06:25:29 UTC 2014
Ok... that advice got me somewhere... now my stack is:
(gdb) bt
#0 0x00000000004098a9 in dump_dir (os=0x80d302000)
at
/usr/src/cddl/usr.sbin/zdb/../../../cddl/contrib/opensolaris/cmd/zdb/zdb.c:1464
#1 0x0000000000406222 in main (argc=0, argv=<value optimized out>)
at
/usr/src/cddl/usr.sbin/zdb/../../../cddl/contrib/opensolaris/cmd/zdb/zdb.c:3604
and we got here on a segmentation fault. Now ... I'm a little confused:
(gdb) frame 0
#0 0x00000000004098a9 in dump_dir (os=0x80d302000)
at
/usr/src/cddl/usr.sbin/zdb/../../../cddl/contrib/opensolaris/cmd/zdb/zdb.c:1464
1464 zdb_nicenum(dl->dl_phys->dl_used, bytes);
(gdb) p dl
No symbol "dl" in current context.
(gdb) p *dl
No symbol "dl" in current context.
I thought for a second that I was using gdb wrong (it's been awhile), but:
(gdb) frame 1
#1 0x0000000000406222 in main (argc=0, argv=<value optimized out>)
at
/usr/src/cddl/usr.sbin/zdb/../../../cddl/contrib/opensolaris/cmd/zdb/zdb.c:3604
3604 dump_dir(os);
(gdb) p os
$3 = (objset_t *) 0x80d302000
... my first thought was "is the stack trashed"? ... but shouldn't gdb know
what 'dl' is regardless of the process state?
Then I realized that line 1464 isn't in dump_dir() ... it's in dump_dead()
help?
More information about the freebsd-hackers
mailing list