我有一个在Linux上运行的C++应用程序,我正在优化它.如何确定代码的哪些区域运行缓慢?
通常,当您通过GDB运行程序时,您可以按Ctrl + C来中断它,例如,如果它陷入无限循环并且您想要获得回溯.
我正在调试一个程序(xmms2d,因为它发生),但只在这个程序中,当我按下Ctrl + C它被视为GDB没有运行 - 程序干净地关闭,然后GDB告诉我程序正常退出.
如何恢复常用的GDB行为,Ctrl + C会中断程序?或者是否存在另一种在GDB中产生相同反应的方法,就像Ctrl + C通常那样?
当我在Xcode中调试程序时,我可以在调试器控制台中暂停执行.有没有办法在命令行中使用gdb?
我想这样做,所以我可以在程序启动后修改断点.
我第一次使用GDB.我跑
$ gdb
Run Code Online (Sandbox Code Playgroud)
然后我就跑了
attach <mypid>
Run Code Online (Sandbox Code Playgroud)
然后我看到我的进程被卡住了(这可能没问题).现在我希望它继续运行,所以我跑了
continue
Run Code Online (Sandbox Code Playgroud)
并且我的过程继续运行但是从这里我陷入困境,如果我想再次观察我当前的堆栈跟踪等等.我无法继续...我试过Ctrl- D等等但是没有任何对我有用...(是只是一个猜测).