How to set earliest possible breakpoint

笑着哭i 提交于 2019-11-28 00:15:02

Update:

GDB-8.1 implemented starti command, which makes this very easy.


Entry point: 0xc154

This is a dynamically-linked, position-independent (PIE) binary.

You want to stop in the dynamic linker after that binary is loaded and relocated, but before it executed anything.

(gdb) set stop-on-solib-events 1
(gdb) run
Starting program: /tmp/a.out 
Stopped due to shared library event (no libraries added or removed)
(gdb) info target
Symbols from "/tmp/a.out".
Unix child process:
        Using the running image of child process 13746.
        While running this, GDB does not access memory from...
Local exec file:
        `/tmp/a.out', file type elf64-x86-64.
        Entry point: 0x5555555545f0
        ...

(gdb) bt
#0  __GI__dl_debug_state () at dl-debug.c:77
#1  0x00007ffff7ddd488 in dl_main (phdr=<optimized out>, phnum=<optimized out>, user_entry=<optimized out>, auxv=0x7ffff7ffe870) at rtld.c:1678
#2  0x00007ffff7defb24 in _dl_sysdep_start (start_argptr=<optimized out>, dl_main=0x7ffff7ddc6e0 <dl_main>) at ../elf/dl-sysdep.c:244
#3  0x00007ffff7ddf365 in _dl_start_final (arg=0x7fffffffe440) at rtld.c:338
#4  _dl_start (arg=0x7fffffffe440) at rtld.c:564
#5  0x00007ffff7ddb6b8 in _start () from /lib64/ld-linux-x86-64.so.2
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!