gpt4 book ai didi

mono - 在 Mono 中调试 SIGSEGV

转载 作者:行者123 更新时间:2023-12-04 05:41:04 28 4
gpt4 key购买 nike

我正在为需要使用 AppleScript 的 OSX 编写一个单声道应用程序。我正在使用 AppleScript class from the Monodevelop source大多数情况下都可以正常工作,但它时不时会导致 SIGSEGV 并且我的程序崩溃。

作为 Mono 和 OSX 的新手,我不知道如何调试这个问题。即使我正在运行调试器,MonoDevelop 也不会中断,并且 C# 异常处理似乎没有任何帮助。有没有办法弄清楚发生了什么?现在看来,我可以保护我的程序的唯一方法是为 AppleScript 代码实际生成一个单独的进程。

我运行的脚本始终相同,并且在 99% 的情况下运行没有问题。
这是堆栈跟踪:

Stacktrace:

at (wrapper managed-to-native) MonoDevelop.MacInterop.AppleScript.OSACompile (MonoDevelop.MacInterop.ComponentInstance,MonoDevelop.MacInterop.AEDesc&,MonoDevelop.MacInterop.OsaMode,MonoDevelop.MacInterop.OsaId&) <IL 0x00028, 0xffffffff>
at MonoDevelop.MacInterop.AppleScript.Run (bool,MonoDevelop.MacInterop.AEDesc&,string&) [0x0007f] in /Users/kristian/Repositories/Kristian/projects/CherryTomato_NT/mono_osx/CherryTomato.Core_OSX/MacInterop/AppleScript.cs:131
at MonoDevelop.MacInterop.AppleScript.Run (bool,MonoDevelop.MacInterop.AEDesc&) [0x00000] in /Users/kristian/Repositories/Kristian/projects/CherryTomato_NT/mono_osx/CherryTomato.Core_OSX/MacInterop/AppleScript.cs:103
at MonoDevelop.MacInterop.AppleScript.Run (string) [0x00010] in /Users/kristian/Repositories/Kristian/projects/CherryTomato_NT/mono_osx/CherryTomato.Core_OSX/MacInterop/AppleScript.cs:83
...

输出中还有一堆其他信息,如有必要,我可以发布这些信息,但它看起来相当通用。

最佳答案

要调试 native 崩溃 (SIGSEGV),您需要使用 gdb(将 gdb 附加到您的程序( gdb program #PID ),运行它,当您点击 SIGSEGV 时,执行将停止)。

以下是将 gdb 与 mono 结合使用的一些提示:http://www.mono-project.com/Debugging#Debugging_with_GDB (特别是您需要按照那里的说明创建 .gdbinit 文件)。

关于mono - 在 Mono 中调试 SIGSEGV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11243260/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com