从c#代码调试c++ exe
Debuging C++ exe from C# code
我有一个多线程c++控制台应用程序。我写了一个c#程序来使用我的c++代码的执行文件。
为了通过c#运行c++应用程序,我为c++应用程序定义了一个Process
,并使用下面的命令来执行它:
_process.StandardInput.WriteLine(command);
执行几个小时后,c++程序的CPU使用率保持在50%,c++程序停止工作!我不知道我该如何理解问题所在!
我试着在visual studio 2014中通过Debug -> Attach to Process
将c++ exe附加到c#程序,但它没有显示任何有用的信息!
我使用visual studio的发布模式构建了c++ exe,我也使用visual studio的发布模式运行c#代码。
你有什么办法来调试这个问题吗?
这可能不是一个答案,但作为使用Windows API函数OutputDebugString()进行故障排除的一个很好的参考文章。Mark Nelson在Dr. Dobb的网站上有一篇很棒的文章,发表于2014年3月11日:《浮躁地进入一个定义规则》。
里面有关于如何利用Microsoft DebugView实用程序的优秀细节,以及在故障排除时发布的单个头文件的解决方案。文章第二页上的简短类定义很可能是隔离c++ exe中问题所在的必要条件。请阅读本文以完全理解单行作用域和强制OutputDebugString()函数调用。使用这个helper类可以减少隔离50%的使用停滞和c++线程出现死锁的时间。
相关文章:
- 为cl.exe(Visual Studio代码)指定命令行C++版本
- 终端不会为C++文件创建.exe文件吗
- 在Windows中以.exe的形式运行c++
- Visual Studio mkl_link_tool.exe链接错误
- PrintWindow函数在notepad.exe中出错
- VSCode C++ 编译的exe感染了Win32:TrojanX-gen[Trj]
- 将返回值从 exe 传递到 bat,并将其传递给 C# 中的进程
- 获取当前正在运行的 exe 名称(不是路径)
- 从 exe 文件 (Visual Studio ) 启动时调试断言失败
- 1d.exe找不到SFML文件?
- VI工作室代码错误无法打开输出文件主.exe
- 如何为每个客户生成自定义 exe
- 使用参数在 C# 的C++上运行.exe
- 在 ******.exe 中0x00000000772CA267 (ntdll.dll) 处未处理的异常:0xC0000
- 如何在Visual Studio Code中重命名我的a.exe文件?
- 解析引用 |exe/dll vs lib
- Q没有管理权限的 exe 无法启动维护工具
- 如何定义自定义生成配置类型,其中通常是.exe的目标改为 DLL
- Eclipse 没有在 Windows (C++) 中编译.exe
- 进程外 EXE 的免注册 COM