gpt4 book ai didi

c# - 为 Mono C# 应用程序生成核心转储

转载 作者:太空狗 更新时间:2023-10-29 21:58:47 25 4
gpt4 key购买 nike

我目前正在开发一个在 mono 下运行的 c# linux 应用程序。虽然,我相信我已经处理了我的程序中可能抛出的任何可能的异常,但我是否应该遗漏任何异常,我想知道是否有一种方法可以在 C# 应用程序崩溃时创建一个核心转储文件,以便我可以看到异常并通过它来尝试确定导致问题的原因,就像 GDB 对 C 程序所做的那样。

我正在为我的应用程序使用 OpenSuse 12.1。

感谢您提供的任何帮助。

最佳答案

听起来你想要一个 SuperAssert对于单声道。我只能找到这个 Mono mail thread .他们讨论了将 Managed Debugger 转换为 Mono 的可能性。不幸的是,Microsoft EULA 似乎阻止了他们移植这个。因此,看起来您需要直接使用操作系统。这是关于如何使用的官方指南 capture a core dump

应采取以下步骤来准备捕获核心转储:

-禁用核心转储文件的最大大小限制
-配置一个固定位置用于存储核心转储
- 禁用 AppArmor
- 为 setuid 和 setgid 进程启用核心转储

快速步骤指南如下:

运行

ulimit -c unlimited

运行

install -m 1777 -d /var/local/dumps

运行

echo "/var/local/dumps/core.%e.%p"> /proc/sys/kernel/core_pattern

运行

rcapparmor stop

运行

sysctl -w kernel.suid_dumpable=2

(重新)启动有问题的进程。

另请查看此线程:Core dump in Linux - 如果您认为该应用程序可能会崩溃,也许您可​​以设置一个技术支持帮助程序脚本/exe 来执行上述所有操作并启动 Mono 应用程序。这将使最终用户很容易重现问题并将转储发送给您以诊断问题。

关于c# - 为 Mono C# 应用程序生成核心转储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12045742/

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