HP-UX HB v13.00 Ch-11 - Software Development

HP-UX Handbook Rev 13.00 Page 22 (of 101)
Chapter 11 Software Development
October 29, 2013
pread(3, "7fE L F 0102010101\0\0\0\0\0\0\0".., 1024, 0) .. = 1024
mmap(NULL, 2985888, PROT_READ|PROT_EXEC, MAP_SHARED|MAP_SHLIB, 3, 0) =
0xc01e4000
madvise(0xc01e4000, 0x2d8fa0, MADV_NORMAL) ............... = 0
mmap(NULL, 47784, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_SHLIB, -
1, 0) = 0x797f0000
mmap(0x797e8000, 29796, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_SHLIB, 3,
3014656) = 0x797e8000
close(3) ................................................. = 0
mmap(NULL, 16384, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_ANONYMOUS, -
1, 0) = 0x797e4000
open("/usr/lib/hpux32/libdl.so.1", O_RDONLY, 0) .......... = 3
fstat(3, 0x7ffff0e0) ..................................... = 0
read(3, "7fE L F 0102010101\0\0\0\0\0\0\0".., 52) ........ = 52
pread(3, "7fE L F 0102010101\0\0\0\0\0\0\0".., 1024, 0) .. = 1024
mmap(NULL, 15856, PROT_READ|PROT_EXEC, MAP_SHARED|MAP_SHLIB, 3, 0) = 0xc04c0000
mmap(NULL, 224, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_SHLIB, 3, 65536) =
0x7980a000
close(3) ................................................. = 0
sigsetreturn(NULL, 0x6211988, 48640) ..................... = 0
mmap(NULL, 3336, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x79802000
sysconf(_SC_CPU_VERSION) ................................. = 768
brk(0x40010040) .......................................... = 0
brk(0x40012030) .......................................... = 0
brk(0x40015000) .......................................... = 0
ioctl(1, TCGETA, 0x7ffff190) ............................. = 0
Hello World!
write(1, "H e l l o W o r l d ! \n", 13) ............... = 13
exit(0) .................................................. WIFEXITED(0)
$
The trace of the archive version on PA is much shorter, since it does not load shared libraries:
execve("./a.out", 0x7dff0a98, 0x7dff0aa0) ........ = 0 [32-bit]
mmap(NULL, 200, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_ANONYMOUS, -1,
NULL) = 0x7dfef000
sigsetreturn(0x135b8, 0x6211988, 1392) ........... = 0
sysconf(_SC_CPU_VERSION) ......................... = 0x214
brk(0x40007998) .................................. = 0
brk(0x4000998c) .................................. = 0
brk(0x4000c000) .................................. = 0
ioctl(1, TCGETA, 0x7dff0f30) ..................... = 0
Hello World!
write(1, "H e l l o W o r l d ! \n", 13) ....... = 13
exit(13) ......................................... WIFEXITED(13)
A system call trace does not show what happens in user space (what the program does
internally). The internal program flow can be analyzed with a debugger.
In this chapter we will also take a look at how processes access memory.