Lou*_*ron 2 c# mono segmentation-fault
我有一个应用程序,我最近拆分运行在单独的进程中,通过本地套接字相互通信.我希望通过提高稳定性将其拆分,因为核心"观察者"流程可以检测到故障并重新启动受影响的子流程.
但是,现在我的观察程序进程经常崩溃,只有消息"Segmentation Fault".我已经包围了try/catch块中的所有线程操作以尝试转储任何输出,但我仍然得到相同的结果.
我一直无法使调试器在MonoDevelop中工作(因此,如果没有这些重影问题,开发就很困难).
是不是Mono应该在托管环境中来防止这样的问题?有什么方法可以缩小问题的根源吗?
分段错误必须(1)使用gdb进行调试.要使用gdb调试mono,首先需要阅读此内容.
完成后,启动程序,运行ps auxf以查找程序的pid,然后执行:
gdb program PID
这会将gdb附加到您的程序.您应该看到一个gdb提示符:
$ (gdb)
Run Code Online (Sandbox Code Playgroud)
执行以下(从您现在应该阅读的链接):
$ (gdb) handle SIGXCPU SIG33 SIG35 SIGPWR nostop noprint
$ (gdb) continue
Run Code Online (Sandbox Code Playgroud)
现在等到你的程序停止响应.当发生这种情况时,返回gdb,你会发现你的程序已经停止在分段错误(SIGSEGV),你应该能够获得有关崩溃的更多信息.特别是这很有用:
$ (gdb) thread apply all backtrace
Run Code Online (Sandbox Code Playgroud)
这将显示所有线程的堆栈跟踪.
(1)您还可以使用更强大的方式来调用您的代码来调用Console.WriteLine.当其他一切都失败时,这是你最后的选择:)
| 归档时间: |
|
| 查看次数: |
2912 次 |
| 最近记录: |