我有一个 C++ 和 C# 应用程序(它们都在同一个项目中)。在某些情况下(每次都无法重现)应用程序崩溃,我看不出有任何原因导致崩溃。
我在每个可能导致崩溃的地方添加了一个 try..catch 块——我什至在应该捕获异常的“Program.cs”代码中添加了一个 try..catch——但没有任何帮助。
我怎样才能找到问题?我应该从哪里开始?
使用带有-ma、-e、-t 选项的 procdump。当应用程序崩溃时,它应该生成一个转储文件。在您最喜欢的调试器(VS2010 或 WinDbg)中打开它。然后检查调用堆栈以获取线索。
尝试调试(不运行)应用程序,它会在您的应用程序中找到错误。如果您使用的是 Visual Studio 2010,请按 F5。
请使用日志管理器。在每个执行点(例如函数的开始和结束),将信息写入 .txt 文件或数据库。当然,你可以找到问题所在。