在c ++/cli程序集中调试vs2010调试器显示所有本机字段都是<undefined value>

Dmi*_*try 3 debugging c++-cli command-line-interface visual-studio-2010

有谁见过这个/知道如何在调试器本地/自动窗口中获取值?

该项目是c ++解决方案中的c ++项目.动态库是构建wity/clr.由于dll的性质,我只能通过附加到加载它的第三方本机进程来调试它.

一个有趣的事情是,在我附加时将clr包含在这些类型的dll之前,在输出窗口中我将得到加载到进程中的所有dll的列表,那些将是c ++运行时sdk dll,第三方native proc dlls和我的d .. 现在我在那个窗口+我的只有clr相关的dll.所有运行时本机dll不再在该窗口中列出.它几乎像调试器不加载它们作为参考.

Dmi*_*try 8

找到了解决方案.在以问题中描述的方式创建混合模式程序集时,在vs2010中使用哪个调试器并不重要.ide将自动选择正确的.如果你的附加更多,你可以在Attach to process对话框的"attach to:"部分的组合框列表中同时使用.net + native.

您必须确保链接这三个选项:/ MAP/MAPINFO:EXPORTS/ASSEMBLYDEBUG位于项目属性的链接器/调试部分.

  • 还应包括以下内容:**属性 - >配置适当 - > C/C++ - >优化 - >优化:禁用(/ Od)** (2认同)