[Ltrace-devel] PIE support

Ian Wienand ianw at gelato.unsw.edu.au
Fri Dec 1 00:34:00 CET 2006


On Thu, Nov 30, 2006 at 03:18:00PM +0100, Petr Machata wrote:
> No idea what went wrong at your site.  Could you send along copy of 
> ltrace -ddd log?  And what distro is installed there?  I was testing it 
> on RHEL-4, but new versions of toolchain tend to add interesting twists 
> to once working programs...

Hmm, I run a quite up-to-date Debian; the version of the major parts
are

gcc version 4.1.2 20061115 (prerelease) (Debian 4.1.1-20)
GNU ld version 2.17 Debian GNU/Linux
libc6.1 - 2.3.6.ds1-8

I attached the log and the binary generated; maybe a diff of readelf
--all might show some differences?

-i
-------------- next part --------------
A non-text attachment was scrubbed...
Name: x-pie
Type: application/octet-stream
Size: 13262 bytes
Desc: not available
Url : http://lists.alioth.debian.org/pipermail/ltrace-devel/attachments/20061201/4d558fa7/x-pie-0001.obj
-------------- next part --------------
DEBUG: read_config_file.c:665: read_config_file(): Reading config file `/usr/local/etc/ltrace.conf'...
DEBUG: read_config_file.c:665: read_config_file(): Reading config file `/home/ianw/.ltrace.conf'...
DEBUG: elf.c:38: do_init_elf(): Reading ELF from /home/ianw/tmp/pie/x-pie...
DEBUG: elf.c:288: do_init_elf(): /home/ianw/tmp/pie/x-pie 3 PLT relocations
DEBUG: plt.c:40: arch_plt_sym_val(): Found PLT 0 entry at bc0

DEBUG: elf.c:320: add_library_symbol(): addr: 0xbc0, symbol: "fprintf"
DEBUG: plt.c:40: arch_plt_sym_val(): Found PLT 1 entry at be0

DEBUG: elf.c:320: add_library_symbol(): addr: 0xbe0, symbol: "__libc_start_main"
DEBUG: plt.c:40: arch_plt_sym_val(): Found PLT 2 entry at c00

DEBUG: elf.c:320: add_library_symbol(): addr: 0xc00, symbol: "__gmon_start__"
DEBUG: dict.c:95: dict_enter(): new dict entry at 0x6000000000016e10[81]: (0xc00,0x6000000000018d50)
DEBUG: dict.c:95: dict_enter(): new dict entry at 0x6000000000016e10[49]: (0xbe0,0x6000000000018db0)
DEBUG: dict.c:95: dict_enter(): new dict entry at 0x6000000000016e10[17]: (0xbc0,0x6000000000018e10)
DEBUG: execute_program.c:76: execute_program(): Executing `/home/ianw/tmp/pie/x-pie'...
DEBUG: execute_program.c:92: execute_program(): PID=8823
DEBUG: wait_for_something.c:52: wait_for_something(): signal from pid 8823
DEBUG: breakpoints.c:126: enable_all_breakpoints(): Enabling breakpoints for pid 8823...
DEBUG: breakpoint.c:164: arch_enable_breakpoint(): Enable Breakpoint at 0xbc0)
DEBUG: breakpoint.c:164: arch_enable_breakpoint(): Enable Breakpoint at 0xbe0)
DEBUG: breakpoint.c:164: arch_enable_breakpoint(): Enable Breakpoint at 0xc00)
DEBUG: process_event.c:88: process_event(): event: none
DEBUG: wait_for_something.c:52: wait_for_something(): signal from pid 8823
DEBUG: process_event.c:109: process_event(): event: syscall (SYS_uname [1130])
DEBUG: wait_for_something.c:52: wait_for_something(): signal from pid 8823
DEBUG: process_event.c:115: process_event(): event: sysret (SYS_uname [1130])
DEBUG: wait_for_something.c:52: wait_for_something(): signal from pid 8823
DEBUG: process_event.c:109: process_event(): event: syscall (SYS_brk [1060])
DEBUG: wait_for_something.c:52: wait_for_something(): signal from pid 8823
DEBUG: process_event.c:115: process_event(): event: sysret (SYS_brk [1060])
DEBUG: wait_for_something.c:52: wait_for_something(): signal from pid 8823
DEBUG: process_event.c:109: process_event(): event: syscall (SYS_access [1049])
DEBUG: wait_for_something.c:52: wait_for_something(): signal from pid 8823
DEBUG: process_event.c:115: process_event(): event: sysret (SYS_access [1049])
DEBUG: wait_for_something.c:52: wait_for_something(): signal from pid 8823
DEBUG: process_event.c:109: process_event(): event: syscall (SYS_access [1049])
DEBUG: wait_for_something.c:52: wait_for_something(): signal from pid 8823
DEBUG: process_event.c:115: process_event(): event: sysret (SYS_access [1049])
DEBUG: wait_for_something.c:52: wait_for_something(): signal from pid 8823
DEBUG: process_event.c:109: process_event(): event: syscall (SYS_open [1028])
DEBUG: wait_for_something.c:52: wait_for_something(): signal from pid 8823
DEBUG: process_event.c:115: process_event(): event: sysret (SYS_open [1028])
DEBUG: wait_for_something.c:52: wait_for_something(): signal from pid 8823
DEBUG: process_event.c:109: process_event(): event: syscall (SYS_stat [1210])
DEBUG: wait_for_something.c:52: wait_for_something(): signal from pid 8823
DEBUG: process_event.c:115: process_event(): event: sysret (SYS_stat [1210])
DEBUG: wait_for_something.c:52: wait_for_something(): signal from pid 8823
DEBUG: process_event.c:109: process_event(): event: syscall (SYS_open [1028])
DEBUG: wait_for_something.c:52: wait_for_something(): signal from pid 8823
DEBUG: process_event.c:115: process_event(): event: sysret (SYS_open [1028])
DEBUG: wait_for_something.c:52: wait_for_something(): signal from pid 8823
DEBUG: process_event.c:109: process_event(): event: syscall (SYS_stat [1210])
DEBUG: wait_for_something.c:52: wait_for_something(): signal from pid 8823
DEBUG: process_event.c:115: process_event(): event: sysret (SYS_stat [1210])
DEBUG: wait_for_something.c:52: wait_for_something(): signal from pid 8823
DEBUG: process_event.c:109: process_event(): event: syscall (SYS_open [1028])
DEBUG: wait_for_something.c:52: wait_for_something(): signal from pid 8823
DEBUG: process_event.c:115: process_event(): event: sysret (SYS_open [1028])
DEBUG: wait_for_something.c:52: wait_for_something(): signal from pid 8823
DEBUG: process_event.c:109: process_event(): event: syscall (SYS_fstat [1212])
DEBUG: wait_for_something.c:52: wait_for_something(): signal from pid 8823
DEBUG: process_event.c:115: process_event(): event: sysret (SYS_fstat [1212])
DEBUG: wait_for_something.c:52: wait_for_something(): signal from pid 8823
DEBUG: process_event.c:109: process_event(): event: syscall (SYS_mmap [1151])
DEBUG: wait_for_something.c:52: wait_for_something(): signal from pid 8823
DEBUG: process_event.c:115: process_event(): event: sysret (SYS_mmap [1151])
DEBUG: wait_for_something.c:52: wait_for_something(): signal from pid 8823
DEBUG: process_event.c:109: process_event(): event: syscall (SYS_close [1029])
DEBUG: wait_for_something.c:52: wait_for_something(): signal from pid 8823
DEBUG: process_event.c:115: process_event(): event: sysret (SYS_close [1029])
DEBUG: wait_for_something.c:52: wait_for_something(): signal from pid 8823
DEBUG: process_event.c:109: process_event(): event: syscall (SYS_access [1049])
DEBUG: wait_for_something.c:52: wait_for_something(): signal from pid 8823
DEBUG: process_event.c:115: process_event(): event: sysret (SYS_access [1049])
DEBUG: wait_for_something.c:52: wait_for_something(): signal from pid 8823
DEBUG: process_event.c:109: process_event(): event: syscall (SYS_open [1028])
DEBUG: wait_for_something.c:52: wait_for_something(): signal from pid 8823
DEBUG: process_event.c:115: process_event(): event: sysret (SYS_open [1028])
DEBUG: wait_for_something.c:52: wait_for_something(): signal from pid 8823
DEBUG: process_event.c:109: process_event(): event: syscall (SYS_read [1026])
DEBUG: wait_for_something.c:52: wait_for_something(): signal from pid 8823
DEBUG: process_event.c:115: process_event(): event: sysret (SYS_read [1026])
DEBUG: wait_for_something.c:52: wait_for_something(): signal from pid 8823
DEBUG: process_event.c:109: process_event(): event: syscall (SYS_fstat [1212])
DEBUG: wait_for_something.c:52: wait_for_something(): signal from pid 8823
DEBUG: process_event.c:115: process_event(): event: sysret (SYS_fstat [1212])
DEBUG: wait_for_something.c:52: wait_for_something(): signal from pid 8823
DEBUG: process_event.c:109: process_event(): event: syscall (SYS_mmap [1151])
DEBUG: wait_for_something.c:52: wait_for_something(): signal from pid 8823
DEBUG: process_event.c:115: process_event(): event: sysret (SYS_mmap [1151])
DEBUG: wait_for_something.c:52: wait_for_something(): signal from pid 8823
DEBUG: process_event.c:109: process_event(): event: syscall (SYS_mmap [1151])
DEBUG: wait_for_something.c:52: wait_for_something(): signal from pid 8823
DEBUG: process_event.c:115: process_event(): event: sysret (SYS_mmap [1151])
DEBUG: wait_for_something.c:52: wait_for_something(): signal from pid 8823
DEBUG: process_event.c:109: process_event(): event: syscall (SYS_mprotect [1155])
DEBUG: wait_for_something.c:52: wait_for_something(): signal from pid 8823
DEBUG: process_event.c:115: process_event(): event: sysret (SYS_mprotect [1155])
DEBUG: wait_for_something.c:52: wait_for_something(): signal from pid 8823
DEBUG: process_event.c:109: process_event(): event: syscall (SYS_mmap [1151])
DEBUG: wait_for_something.c:52: wait_for_something(): signal from pid 8823
DEBUG: process_event.c:115: process_event(): event: sysret (SYS_mmap [1151])
DEBUG: wait_for_something.c:52: wait_for_something(): signal from pid 8823
DEBUG: process_event.c:109: process_event(): event: syscall (SYS_mmap [1151])
DEBUG: wait_for_something.c:52: wait_for_something(): signal from pid 8823
DEBUG: process_event.c:115: process_event(): event: sysret (SYS_mmap [1151])
DEBUG: wait_for_something.c:52: wait_for_something(): signal from pid 8823
DEBUG: process_event.c:109: process_event(): event: syscall (SYS_close [1029])
DEBUG: wait_for_something.c:52: wait_for_something(): signal from pid 8823
DEBUG: process_event.c:115: process_event(): event: sysret (SYS_close [1029])
DEBUG: wait_for_something.c:52: wait_for_something(): signal from pid 8823
DEBUG: process_event.c:109: process_event(): event: syscall (SYS_mmap [1151])
DEBUG: wait_for_something.c:52: wait_for_something(): signal from pid 8823
DEBUG: process_event.c:115: process_event(): event: sysret (SYS_mmap [1151])
DEBUG: wait_for_something.c:52: wait_for_something(): signal from pid 8823
DEBUG: process_event.c:109: process_event(): event: syscall (SYS_munmap [1152])
DEBUG: wait_for_something.c:52: wait_for_something(): signal from pid 8823
DEBUG: process_event.c:115: process_event(): event: sysret (SYS_munmap [1152])
DEBUG: wait_for_something.c:52: wait_for_something(): signal from pid 8823
DEBUG: process_event.c:109: process_event(): event: syscall (SYS_write [1027])
ahoj svete!
DEBUG: wait_for_something.c:52: wait_for_something(): signal from pid 8823
DEBUG: process_event.c:115: process_event(): event: sysret (SYS_write [1027])
DEBUG: wait_for_something.c:52: wait_for_something(): signal from pid 8823
DEBUG: process_event.c:109: process_event(): event: syscall (SYS_exit_group [1236])
DEBUG: wait_for_something.c:52: wait_for_something(): signal from pid 8823
DEBUG: process_event.c:97: process_event(): event: exit (0)
+++ exited (status 0) +++
DEBUG: process_event.c:162: remove_proc(): Removing pid 8823

DEBUG: wait_for_something.c:30: wait_for_something(): No more children


More information about the Ltrace-devel mailing list