-
-
[已解决]linux某64位程序执行lea rdi,[r14+0x18]崩溃
-
发表于: 2017-3-3 17:35 2339
-
结论:gdb 7.2的一个bug吧,虽然是si单步执行,但是其实目标程序一直执行到很远的地方。后来我使用了gdb 7.12.1,就没有这个问题了。
这个目标程序,在断点处后面很远的地方,有给自己发sigkill的一段代码。但是gdb的si命令实际上并没有单步执行,而是一直执行到后面sigkill的那段代码。
我觉得大体思路要找找谁给目标程序发了sigkill信号?内核发的要从/var/log/messages排查,其它程序发的要从其它程序日志排查。再者就是程序本身的代码是否有sigkill自己。
---------------------------------------------------------------------------------------
linux上的某64位程序,gdb断点在某处
(gdb) info registers rax 0x3e8 1000 rbx 0x3e9 1001 rcx 0x7ffff74c1870 140737342347376 rdx 0x3e9 1001 rsi 0x0 0 rdi 0xc 12 rbp 0x3e8 0x3e8 rsp 0x7fffffffe390 0x7fffffffe390 r8 0xffffffff 4294967295 r9 0x37313032203e2933 3977012937792301363 r10 0x312033302d33302d 3539885589122986029 r11 0x246 582 r12 0x71b0d0 7450832 r13 0xf4628 1001000 r14 0x7fffffffe4b0 140737488348336 r15 0x71b0d0 7450832 rip 0x4157d0 0x4157d0 <CProxyManager::Init()+720> eflags 0x246 [ PF ZF IF ] cs 0x33 51 ss 0x2b 43 ds 0x0 0 es 0x0 0 fs 0x0 0 gs 0x0 0
想必是即将运行这一句的
0x00000000004157d0 <+720>: lea rdi,[r14+0x18]
于是我单步运行,输入si
结果崩溃了。也没有core文件留下。
Program terminated with signal SIGKILL, Killed.
The program no longer exists.
不知道大家有什么思路提示提示?谢谢大家!
当时就单线程,不可能是其它线程造成崩溃
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
赞赏
他的文章
看原图
赞赏
雪币:
留言: