ele*_*uid 4 c debugging macos gcc segmentation-fault
我在使用Mac上运行导致分段错误的程序时出现问题.我正在为IOCCC整理一个条目,这意味着我的计划有以下几点:
我没有重新测试的Linux机器,但作为最后的测试,我尝试在MacBook Pro上编译和运行它 - Mac OSX 10.6.7,Xcode 4.2(即GCC 4.2.1).同样,它从命令行干净地编译.似乎在Mac上键入"prog"不会使编译的程序运行,但"open prog"似乎.大约10秒钟没有任何事情发生(我的程序成功运行大约需要一分钟),但它只是说"分段错误",然后结束.
以下是我尝试过的,使用从这个有用的StackOverflow线程收集的答案来追踪问题:
警告:无法恢复以前选择的帧.现在没有可用于编程的内存:调用malloc不安全
我没有想法.我试图让Cygwin设置(虽然花了好几个小时),看看是否有任何工具可以这样工作,但如果失败那么我就不知所措了.当然必须有一些能够跟踪Mac上分段错误原因的工具吗?
你有编译-g并运行它gdb吗?一旦应用程序崩溃,您可以获得一个回溯,bt它应该显示崩溃发生的位置
为了更现代的lldb味道
$ lldb --file /path/to/program
...
(lldb) r
Process 89510 launched
...
(lldb) bt
* thread #1, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x726f00)
* frame #0: 0x00007fff73856e52 libsystem_platform.dylib`_platform_strlen + 18
...
Run Code Online (Sandbox Code Playgroud)
在许多情况下,macOS 将最近的程序崩溃日志存储在~/Library/Logs/DiagnosticReports/文件夹下。
通常我在 macOS 上进行故障排除时会尝试以下步骤:
~/Library/Logs/DiagnosticReports/{your_program}_{crashing_date}_{id}_{your_host}.crashCrashed以找到导致崩溃的线程。它会向您显示崩溃期间的堆栈跟踪,并且在许多情况下,还会记录导致崩溃的确切源代码行。一些链接:
[1] https://mac-optimization.bestreviews.net/analyze-mac-crash-reports/
| 归档时间: |
|
| 查看次数: |
10687 次 |
| 最近记录: |