如何解决如何使用断点调试具有多个dll的exe
我有一个myapp.exe
,是在另一个程序运行了一些复杂的逻辑之后。我想用myapp.exe
调试问题,就像Visual Studio最好使用断点一样。如何做到这一点?该exe是一个控制台应用程序,当场运行。这不是一个正在运行的进程,所以我无法附加调试器。
我想要的预期行为是:
- 魔术并为该exe和dll设置断点
- 从其他程序调用exe
- Visual Studio遇到了断点,我可以调试发生了什么
解决方法
只需在要附加调试器的位置使用System.Diagnostics.Debugger.Launch()
。您可以将其放置在所需的断点位置之前。 Windows将询问您要附加的调试器。
另一种方法是检查System.Diagnostics.Debugger.IsAttached属性并等待调试器进行以下操作(轮询):
while (!Debugger.IsAttached)
{
Thread.Sleep(500);
}
应用程序将循环运行,直到您附加调试器(在Visual Studio中,通过附加到流程命令Ctrl + alt + P)。 再次,只需在循环之后甚至循环中放置一个断点就可以了。
这是用于调试Windows Service应用程序的众所周知的方法,对您的意图也很有用。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。