http://www.lenky.info/archives/2013/02/2202
Breakpoint , 0x0000003c4e417410 in open64 () from /lib64/ld-linux-x86-.so.
(gdb) bt
# 0x0000003c4e417410 in open64 () from /lib64/ld-linux-x86-.so.
# 0x0000003c4e40f789 in _dl_sysdep_read_whole_file () from /lib64/ld-linux-x86-.so.
# 0x0000003c4e408d78 in _dl_load_cache_lookup () from /lib64/ld-linux-x86-.so.
# 0x0000003c4e408612 in _dl_map_object () from /lib64/ld-linux-x86-.so.
# 0x0000003c4e40c3a2 in openaux () from /lib64/ld-linux-x86-.so.
# 0x0000003c4e40e286 in _dl_catch_error () from /lib64/ld-linux-x86-.so.
# 0x0000003c4e40ca85 in _dl_map_object_deps () from /lib64/ld-linux-x86-.so.
# 0x0000003c4e403310 in dl_main () from /lib64/ld-linux-x86-.so.
# 0x0000003c4e4160ae in _dl_sysdep_start () from /lib64/ld-linux-x86-.so.
# 0x0000003c4e4014a4 in _dl_start () from /lib64/ld-linux-x86-.so.
# 0x0000003c4e400b08 in _start () from /lib64/ld-linux-x86-.so.
# 0x0000000000000001 in ?? ()
# 0x00007fffffffe85b in ?? ()
# 0x0000000000000000 in ?? ()
(gdb) bt
# 0x0000003c4e417410 in open64 () from /lib64/ld-linux-x86-.so.
(More stack frames follow...)
(gdb) bt
# 0x0000003c4e417410 in open64 () from /lib64/ld-linux-x86-.so.
# 0x0000003c4e40f789 in _dl_sysdep_read_whole_file () from /lib64/ld-linux-x86-.so.
(More stack frames follow...)
(gdb) bt
# 0x0000003c4e417410 in open64 () from /lib64/ld-linux-x86-.so.
# 0x0000003c4e40f789 in _dl_sysdep_read_whole_file () from /lib64/ld-linux-x86-.so.
# 0x0000003c4e408d78 in _dl_load_cache_lookup () from /lib64/ld-linux-x86-.so.
(More stack frames follow...)
(gdb) bt -
# 0x0000000000000000 in ?? ()
(gdb) bt -
[root@monitor ~]# cat test.c #include <stdio.h>
#include <stdlib.h>
main()
{
int *p1=malloc();
int *p2=malloc();
int *p3=malloc();
int *p4=malloc();
int *p5=malloc();
printf("%p\n",p1);
printf("%p\n",p2);
printf("%p\n",p3);
printf("%p\n",p4);
printf("%p\n",p5);
printf("1231238888::"); }
[root@monitor ~]# readelf -s ./testSymbol table '.dynsym' contains entries:
Num: Value Size Type Bind Vis Ndx Name
: NOTYPE LOCAL DEFAULT UND
: FUNC GLOBAL DEFAULT UND printf@GLIBC_2.2.5 ()
: NOTYPE WEAK DEFAULT UND __gmon_start__
: FUNC GLOBAL DEFAULT UND malloc@GLIBC_2.2.5 ()
: FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.2.5 ()Symbol table '.symtab' contains entries:
Num: Value Size Type Bind Vis Ndx Name
: NOTYPE LOCAL DEFAULT UND
: SECTION LOCAL DEFAULT
: 000000000040021c SECTION LOCAL DEFAULT
: 000000000040023c SECTION LOCAL DEFAULT
: SECTION LOCAL DEFAULT
: SECTION LOCAL DEFAULT
: 00000000004002f8 SECTION LOCAL DEFAULT
: 000000000040033e SECTION LOCAL DEFAULT
: SECTION LOCAL DEFAULT
: SECTION LOCAL DEFAULT
: SECTION LOCAL DEFAULT
: 00000000004003c8 SECTION LOCAL DEFAULT
: 00000000004003e0 SECTION LOCAL DEFAULT
: SECTION LOCAL DEFAULT
: 00000000004006c8 SECTION LOCAL DEFAULT
: 00000000004006d8 SECTION LOCAL DEFAULT
: 00000000004006fc SECTION LOCAL DEFAULT
: SECTION LOCAL DEFAULT
: 00000000006007a0 SECTION LOCAL DEFAULT
: 00000000006007b0 SECTION LOCAL DEFAULT
: 00000000006007c0 SECTION LOCAL DEFAULT
: 00000000006007c8 SECTION LOCAL DEFAULT
: SECTION LOCAL DEFAULT
: SECTION LOCAL DEFAULT
: SECTION LOCAL DEFAULT
: SECTION LOCAL DEFAULT
: SECTION LOCAL DEFAULT
: SECTION LOCAL DEFAULT
: SECTION LOCAL DEFAULT
: SECTION LOCAL DEFAULT
: SECTION LOCAL DEFAULT
: SECTION LOCAL DEFAULT
: SECTION LOCAL DEFAULT
: SECTION LOCAL DEFAULT
: 000000000040044c FUNC LOCAL DEFAULT call_gmon_start
: FILE LOCAL DEFAULT ABS crtstuff.c
: 00000000006007a0 OBJECT LOCAL DEFAULT __CTOR_LIST__
: 00000000006007b0 OBJECT LOCAL DEFAULT __DTOR_LIST__
: 00000000006007c0 OBJECT LOCAL DEFAULT __JCR_LIST__
: FUNC LOCAL DEFAULT __do_global_dtors_aux
: OBJECT LOCAL DEFAULT completed.
: 00000000006009a0 OBJECT LOCAL DEFAULT dtor_idx.
: 00000000004004e0 FUNC LOCAL DEFAULT frame_dummy
: FILE LOCAL DEFAULT ABS crtstuff.c
: 00000000006007a8 OBJECT LOCAL DEFAULT __CTOR_END__
: OBJECT LOCAL DEFAULT __FRAME_END__
: 00000000006007c0 OBJECT LOCAL DEFAULT __JCR_END__
: FUNC LOCAL DEFAULT __do_global_ctors_aux
: FILE LOCAL DEFAULT ABS test.c
: OBJECT LOCAL DEFAULT _GLOBAL_OFFSET_TABLE_
: 000000000060079c NOTYPE LOCAL DEFAULT __init_array_end
: 000000000060079c NOTYPE LOCAL DEFAULT __init_array_start
: 00000000006007c8 OBJECT LOCAL DEFAULT _DYNAMIC
: NOTYPE WEAK DEFAULT data_start
: FUNC GLOBAL DEFAULT UND printf@@GLIBC_2.2.5
: 00000000004005f0 FUNC GLOBAL DEFAULT __libc_csu_fini
: FUNC GLOBAL DEFAULT _start
: NOTYPE WEAK DEFAULT UND __gmon_start__
: NOTYPE WEAK DEFAULT UND _Jv_RegisterClasses
: 00000000004006c8 FUNC GLOBAL DEFAULT _fini
: FUNC GLOBAL DEFAULT UND malloc@@GLIBC_2.2.5
: FUNC GLOBAL DEFAULT UND __libc_start_main@@GLIBC_
: 00000000004006d8 OBJECT GLOBAL DEFAULT _IO_stdin_used
: NOTYPE GLOBAL DEFAULT __data_start
: 00000000004006e0 OBJECT GLOBAL HIDDEN __dso_handle
: 00000000006007b8 OBJECT GLOBAL HIDDEN __DTOR_END__
: FUNC GLOBAL DEFAULT __libc_csu_init
: NOTYPE GLOBAL DEFAULT ABS __bss_start
: 00000000006009a8 NOTYPE GLOBAL DEFAULT ABS _end
: NOTYPE GLOBAL DEFAULT ABS _edata
: FUNC GLOBAL DEFAULT main
: 00000000004003c8 FUNC GLOBAL DEFAULT _init
[root@localhost trace]# readelf -s ./test | gawk '
{
if
($4 ==
"FUNC"
&& $2 != 0) {
print
"# code for "
$NF;
print
"b *0x"
$2;
print
"commands"
;
print
"silent"
;
print
"bt 1"
;
print
"c"
;
print
"end"
;
print
""
;
}
}' > sym;
[root@monitor ~]# cat sym
# code for call_gmon_start
b *0x000000000040044c
commands
silent
bt
c
end# code for __do_global_dtors_aux
b *0x0000000000400470
commands
silent
bt
c
end# code for frame_dummy
b *0x00000000004004e0
commands
silent
bt
c
end# code for __do_global_ctors_aux
b *0x0000000000400690
commands
silent
bt
c
end# code for __libc_csu_fini
b *0x00000000004005f0
commands
silent
bt
c
end# code for _start
b *0x0000000000400420
commands
silent
bt
c
end# code for _fini
b *0x00000000004006c8
commands
silent
bt
c
end# code for __libc_csu_init
b *0x0000000000400600
commands
silent
bt
c
end# code for main
b *0x0000000000400504
commands
silent
bt
c
end# code for _init
b *0x00000000004003c8
commands
silent
bt
c
end[root@monitor ~]# gdb --command=sym ./test -q
Reading symbols from /root/test...done.
Breakpoint at 0x40044c
Breakpoint at 0x400470
Breakpoint at 0x4004e0
Breakpoint at 0x400690
Breakpoint at 0x4005f0
Breakpoint at 0x400420
Breakpoint at 0x4006c8
Breakpoint at 0x400600
Breakpoint at 0x400504: file test.c, line .
Breakpoint at 0x4003c8
(gdb) r
Starting program: /root/test
# 0x0000000000400420 in _start ()
# 0x0000000000400600 in __libc_csu_init ()
# 0x00000000004003c8 in _init ()
# 0x000000000040044c in call_gmon_start ()
# 0x00000000004004e0 in frame_dummy ()
# 0x0000000000400690 in __do_global_ctors_aux ()
# main () at test.c:
0x601010
0x601030
0x601050
0x601070
0x601090
# 0x00000000004006c8 in _fini ()
# 0x0000000000400470 in __do_global_dtors_aux ()
::
Program exited with code .
Missing separate debuginfos, use: debuginfo-install glibc-2.12-1.166.el6_7..x86_64