Solaris 64-bit Developer's Guide

Debugging

All of the Solaris debugging tools have been updated to work with 64-bit applications. This includes the truss(1) command, the /proc tools (proc(1)), adb, dbx, and adbgen.

The dbx debugger, capable of debugging 64-bit applications, is available as part of the Sun Workshop tool suites. The remaining tools are included with the Solaris release.

adbgen generates a program to make a given adb(1) macro. Consequently, it needs to be run on a 64-bit system with the -m lp64 option to generate 64-bit macros. See the adbgen(1M) man page for more information.

The options for all these tools except adbgen are unchanged. A number of enhancements were made to adb for debugging 64-bit programs. As expected, using "*" to dereference a pointer will dereference 8 bytes for 64-bit programs and 4 bytes for 32-bit programs. In addition, the following new modifiers were added:

Additional ?, /, = modifiers:
	
g		(8) Display 8 bytes in unsigned octal	
G		(8) Display 8 bytes in signed octal
e		(8) Display 8 bytes in signed decimal	
E		(8) Display 8 bytes in unsigned decimal
J		(8) Display 8 bytes in hexadecimal
K		(n) Print pointer or long in hexadecimal
		  Display 4 bytes for 32-bit programs
		  and 8 bytes for 64-bit programs.
y		(8) Print 8 bytes in date format
 
Additional ? and / modifiers:
 
M <value> <mask>  Apply <mask> and compare for 8-byte value;
		  move '.' to matching location.
Z		(8) write 8 bytes