在opensolaris下使用dbx

之所以使用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)

refs:
http://docs.sun.com/app/docs/doc/819-5257?l=en