Skip to content

Instantly share code, notes, and snippets.

@cchamplin
Created November 11, 2018 14:47
Show Gist options
  • Save cchamplin/abb9468e9b89e94d14cc0e2c4bafdaaa to your computer and use it in GitHub Desktop.
Save cchamplin/abb9468e9b89e94d14cc0e2c4bafdaaa to your computer and use it in GitHub Desktop.
/mnt/i/development/plugin_test$ gdb ./greeter_linux
Reading symbols from ./greeter_linux...done.
(gdb) b link.addmoduledata
Function "link.addmoduledata" not defined.
Make breakpoint pending on future shared library load? (y or [n]) y
Breakpoint 1 (link.addmoduledata) pending.
(gdb) display/i $pc
(gdb) b main.main
Breakpoint 2 at 0x51e1d0
(gdb) r
Starting program: /mnt/i/evelopment/plugin_test/greeter_linux
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[New Thread 0x7ffffc9e0700 (LWP 174)]
Breakpoint 2, 0x000000000051e1d0 in main.main ()
1: x/i $pc
=> 0x51e1d0 <main.main>: mov %fs:0xfffffffffffffff8,%rcx
(gdb) x 0x0080a300
0x80a300 <runtime.lastmoduledatap>: 0x0080f460
(gdb) x *0x0080a300
0x80f460 <runtime.firstmoduledata>: 0x00575fc0
(gdb) x 0x00575fc0
0x575fc0 <runtime.pclntab>: 0xfffffffb
(gdb) b dlopen
Breakpoint 3 at 0x7fffff1f1090: file dlopen.c, line 75.
(gdb) c
Continuing.
Breakpoint 3, __dlopen (file=0xc0000aa000 "/mnt/i/development/plugin_test/eng-linux/eng-linux.so",
mode=mode@entry=258) at dlopen.c:75
75 dlopen.c: No such file or directory.
1: x/i $pc
=> 0x7fffff1f1090 <__dlopen>: sub $0x28,%rsp
(gdb) x 0x0080a300
0x80a300 <runtime.lastmoduledatap>: 0x0080f460
(gdb) x *0x0080a300
0x80f460 <runtime.firstmoduledata>: 0x00575fc0
(gdb) c
Continuing.
Breakpoint 1, 0x00007ffff9e700e0 in link.addmoduledata ()
from /mnt/i/development/plugin_test/eng-linux/eng-linux.so
1: x/i $pc
=> 0x7ffff9e700e0 <go.link.addmoduledata>: lea 0x2ff119(%rip),%rdi # 0x7ffffa16f200 <local.moduledata>
(gdb) si
0x00007ffff9e700e7 in link.addmoduledata () from /mnt/i/development/plugin_test/eng-linux/eng-linux.so
1: x/i $pc
=> 0x7ffff9e700e7 <go.link.addmoduledata+7>: callq 0x7ffff9e700c0 <runtime.addmoduledata>
(gdb) si
0x00007ffff9e700c0 in runtime.addmoduledata () from /mnt/i/development/plugin_test/eng-linux/eng-linux.so
1: x/i $pc
=> 0x7ffff9e700c0 <runtime.addmoduledata>: push %r15
(gdb) si
0x00007ffff9e700c2 in runtime.addmoduledata () from /mnt/i/development/plugin_test/eng-linux/eng-linux.so
1: x/i $pc
=> 0x7ffff9e700c2 <runtime.addmoduledata+2>: mov 0x2f1f9f(%rip),%r15 # 0x7ffffa162068
(gdb) si
0x00007ffff9e700c9 in runtime.addmoduledata () from /mnt/i/development/plugin_test/eng-linux/eng-linux.so
1: x/i $pc
=> 0x7ffff9e700c9 <runtime.addmoduledata+9>: mov (%r15),%rax
(gdb) si
0x00007ffff9e700cc in runtime.addmoduledata () from /mnt/i/development/plugin_test/eng-linux/eng-linux.so
1: x/i $pc
=> 0x7ffff9e700cc <runtime.addmoduledata+12>: mov %rdi,0x1c0(%rax)
(gdb) info registers
rax 0x80f460 8451168
rbx 0x7ffffa089800 140737388255232
rcx 0x836560 8611168
rdx 0x7ffffffee108 140737488281864
rsi 0x7ffffffee0f8 140737488281848
rdi 0x7ffffa16f200 140737389195776
rbp 0x1 0x1
rsp 0x7ffffffeda78 0x7ffffffeda78
r8 0x7fffff7e09d8 140737479838168
r9 0x7fffff7e09d8 140737479838168
r10 0x0 0
r11 0x0 0
r12 0x7ffffffee0f8 140737488281848
r13 0x7ffffffee108 140737488281864
r14 0x7ffffa089808 140737388255240
r15 0x80a300 8430336
rip 0x7ffff9e700cc 0x7ffff9e700cc <runtime.addmoduledata+12>
eflags 0x293 [ CF AF SF IF ]
cs 0x33 51
ss 0x2b 43
ds 0x0 0
es 0x0 0
fs 0x0 0
gs 0x0 0
(gdb) x 0x0080a300
0x80a300 <runtime.lastmoduledatap>: 0x0080f460
(gdb) x *0x0080a300
0x80f460 <runtime.firstmoduledata>: 0x00575fc0
(gdb)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment