我正在尝试使用不属于解决方案的外部应用程序调试dll。我使用的是VisualStudio+cmake。我已经使用类似以下内容设置了launch.vs.json:
{
"version": "0.2.1",
"defaults": {},1
"configurations": [
{
"name": "mydll.dll",
"type": "default",
"project": "CMakeLists.txt",
"projectTarget": "mydll.dll",
"program": "external_program.exe",
"args": [ "path_to_input_file" ]
}
]
}
它不起作用。正确的方法是什么?
2条答案
按热度按时间z31licg01#
您需要该程式库的符号来两柴,或者必须在建置程式库时附加两柴符号(例如两柴dll)。之后,您可以“附加到载入dll的行程序”。how to attach to a process
xqk2d5yq2#
我认为VS_DEBUGGER_COMMAND和VS_DEBUGGER_COMMAND_ARGUMENTS属性可以满足您的需要。
使用MSVC,以下cmake项目将生成一个mydll.dll库,该库在调试时将运行
C:/path/to/external_program C:/path/to/mydll.dll
。若要创建MSVC项目,请从包含上述
CMakeLists.txt
的目录中运行以下命令。这将配置CMake项目,并打开Visual Studio。因为
external_program.exe
是外部代码,所以您需要enable debugging of external sources。这可以通过以下方式完成: