Skip to content

Instantly share code, notes, and snippets.

@eklitzke
Created September 30, 2016 18:17
Show Gist options
  • Save eklitzke/5557d25a3cf5e15b2947d27b5d299a80 to your computer and use it in GitHub Desktop.
Save eklitzke/5557d25a3cf5e15b2947d27b5d299a80 to your computer and use it in GitHub Desktop.
Thread 1 "foo" hit Breakpoint 1, fmt.Printf (format="%v\n", a= []interface {} = {...}, n=859530404224, err=...) at /usr/lib/golang/src/fmt/print.go:196
196 func Printf(format string, a ...interface{}) (n int, err error) {
(gdb) disas
Dump of assembler code for function fmt.Printf:
=> 0x000000000045a700 <+0>: mov %fs:0xfffffffffffffff8,%rcx
0x000000000045a709 <+9>: cmp 0x10(%rcx),%rsp
0x000000000045a70d <+13>: jbe 0x45a7f2 <fmt.Printf+242>
0x000000000045a713 <+19>: sub $0x60,%rsp
0x000000000045a717 <+23>: xor %ebx,%ebx
0x000000000045a719 <+25>: xor %ebx,%ebx
0x000000000045a71b <+27>: mov %rbx,0x98(%rsp)
0x000000000045a723 <+35>: mov %rbx,0xa0(%rsp)
0x000000000045a72b <+43>: mov 0x14440e(%rip),%rax # 0x59eb40 <go.itab.*os.File.io.Writer>
0x000000000045a732 <+50>: xor %ebp,%ebp
0x000000000045a734 <+52>: cmp %rbp,%rax
0x000000000045a737 <+55>: je 0x45a7c0 <fmt.Printf+192>
0x000000000045a73d <+61>: mov 0x129b5c(%rip),%rcx # 0x5842a0 <os.Stdout>
0x000000000045a744 <+68>: mov %rax,0x50(%rsp)
0x000000000045a749 <+73>: mov %rax,(%rsp)
0x000000000045a74d <+77>: mov %rcx,0x58(%rsp)
0x000000000045a752 <+82>: mov %rcx,0x8(%rsp)
0x000000000045a757 <+87>: mov 0x68(%rsp),%rbx
0x000000000045a75c <+92>: mov %rbx,0x10(%rsp)
0x000000000045a761 <+97>: mov 0x70(%rsp),%rbx
0x000000000045a766 <+102>: mov %rbx,0x18(%rsp)
0x000000000045a76b <+107>: mov 0x78(%rsp),%rbx
0x000000000045a770 <+112>: mov %rbx,0x20(%rsp)
0x000000000045a775 <+117>: mov 0x80(%rsp),%rbx
0x000000000045a77d <+125>: mov %rbx,0x28(%rsp)
0x000000000045a782 <+130>: mov 0x88(%rsp),%rbx
0x000000000045a78a <+138>: mov %rbx,0x30(%rsp)
0x000000000045a78f <+143>: callq 0x45a600 <fmt.Fprintf>
0x000000000045a794 <+148>: mov 0x38(%rsp),%rdx
0x000000000045a799 <+153>: mov 0x40(%rsp),%rcx
0x000000000045a79e <+158>: mov 0x48(%rsp),%rax
0x000000000045a7a3 <+163>: mov %rdx,0x90(%rsp)
0x000000000045a7ab <+171>: mov %rcx,0x98(%rsp)
0x000000000045a7b3 <+179>: mov %rax,0xa0(%rsp)
0x000000000045a7bb <+187>: add $0x60,%rsp
0x000000000045a7bf <+191>: retq
0x000000000045a7c0 <+192>: lea 0x96c19(%rip),%rbx # 0x4f13e0
0x000000000045a7c7 <+199>: mov %rbx,(%rsp)
0x000000000045a7cb <+203>: lea 0x7bfee(%rip),%rbx # 0x4d67c0
0x000000000045a7d2 <+210>: mov %rbx,0x8(%rsp)
0x000000000045a7d7 <+215>: lea 0x144362(%rip),%rbx # 0x59eb40 <go.itab.*os.File.io.Writer>
0x000000000045a7de <+222>: mov %rbx,0x10(%rsp)
0x000000000045a7e3 <+227>: callq 0x40b9f0 <runtime.typ2Itab>
0x000000000045a7e8 <+232>: mov 0x18(%rsp),%rax
0x000000000045a7ed <+237>: jmpq 0x45a73d <fmt.Printf+61>
0x000000000045a7f2 <+242>: callq 0x453260 <runtime.morestack_noctxt>
0x000000000045a7f7 <+247>: jmpq 0x45a700 <fmt.Printf>
0x000000000045a7fc <+252>: int3
0x000000000045a7fd <+253>: int3
0x000000000045a7fe <+254>: int3
0x000000000045a7ff <+255>: int3
End of assembler dump.
(gdb) info registers
rax 0xc82000e3e0 859530388448
rbx 0x1 1
rcx 0x4b31c0 4927936
rdx 0xc82000e3e0 859530388448
rsi 0xc82003df30 859530583856
rdi 0xc82000e3e0 859530388448
rbp 0x18 0x18
rsp 0xc82003de98 0xc82003de98
r8 0x8f8234 9404980
r9 0x0 0
r10 0xc82000e3e0 859530388448
r11 0x0 0
r12 0x2 2
r13 0x52a404 5415940
r14 0x1 1
r15 0x8 8
rip 0x45a700 0x45a700 <fmt.Printf>
eflags 0x246 [ PF ZF IF ]
cs 0x33 51
ss 0x2b 43
ds 0x0 0
es 0x0 0
fs 0x0 0
gs 0x0 0
evan@azrael ~/g/s/c/rpc/muttley (increase_file_limit) $ cat /proc/12207/maps
00400000-004ab000 r-xp 00000000 fd:02 19923600 /home/evan/foo
004ab000-00580000 r--p 000ab000 fd:02 19923600 /home/evan/foo
00580000-00585000 rw-p 00180000 fd:02 19923600 /home/evan/foo
00585000-005a4000 rw-p 00000000 00:00 0 [heap]
c000000000-c000001000 rw-p 00000000 00:00 0
c81fff8000-c820100000 rw-p 00000000 00:00 0
7ffff7f6b000-7ffff7ffb000 rw-p 00000000 00:00 0
7ffff7ffb000-7ffff7ffd000 r--p 00000000 00:00 0 [vvar]
7ffff7ffd000-7ffff7fff000 r-xp 00000000 00:00 0 [vdso]
7ffffffde000-7ffffffff000 rw-p 00000000 00:00 0 [stack]
ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0 [vsyscall]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment