之所以使用dbx而不是用gdb是因为:
2009.06 opensolaris 中的gdb 版本是32位的,所以不能debug 64位的程序;
http://defect.opensolaris.org/bz/show_bug.cgi?id=2759
dbx是SunStudioExpress自带的调试工具,如何安装sunstudio,可参见:
http://blog.csdn.net/lantianjialiang/archive/2010/04/27/5532713.aspx
配置好IPS后,通过pkg install sunstudio,就可以安装好了;
安装完成后默认在/opt/SunStudioExpress/路径;
如何使用dbx(我的机器是64位的,以调试snmpd为例):
cd /opt/SunStudioExpress/bin
./dbx /usr/sbin/amd64/snmpd
loadobject -load yourSoFile.so
stop at zeusTargets.c:74
run -f -L -q -V -c/etc/sma/snmp/snmpd.conf -DALL
pathmap (Finding Source and Object Files)
print
whatis (prints the declarations or definitions of identifiers, structs, types
and C++ classes, or the type of an expression.)
whereis (Locating Symbols)
list (Navigating To a File)
where (Finding Your Place on the Stack)
cont (continue)
status (current status)