2012-04-04 47 views
0

我刚刚开始与gdb,所以我得到了一个我想调试的CrackMe应用程序。于是我运行了应用程序,在终端中启动了gdb,并将其附加到CrackMe的PID中,并使应用程序崩溃。gdb附加过程原因mach_msg_trap()

(gdb) attach 6040 
Attaching to program: `/Users/***/Desktop/CrackMe.app/Contents/MacOS/CrackMe', process 6040. 
Reading symbols for shared libraries + done 
Re-enabling shared library breakpoint 1 
Re-enabling shared library breakpoint 2 
0x00007fff8428767a in mach_msg_trap() 

然后,程序变得无响应。是否还有其他的论点,我需要通过附加,我失踪? 谢谢

回答

1

当您使用调试器时,它会自动停止程序。这就是为什么它没有反应。输入“cont”(或“continue”)让它继续前进。

它也显示了堆栈的顶部框架,它已停止。在这种情况下,这是mach_msg_trap()。这是一个非常常见的情况,因为空闲的应用程序在等待来自窗口服务器的事件时通常会被阻止在该函数中。