在调试不同的 dll 期间显示地图的内容

Posted

技术标签:

【中文标题】在调试不同的 dll 期间显示地图的内容【英文标题】:Show content of map during debugging a different dll 【发布时间】:2016-04-04 14:04:11 【问题描述】:

我有一个包含多个类和 dll/exe 的程序:

在 dll 中,我有一个映射,其中包含从其他 dll 和 exe 访问的多个对象。

使用地图调试 dll 时,我可以看到内容:

在其他 dll 中调试期间,我看不到地图的内容(仅...):

我是否遇到无法导出 STL 类 (C4251) 的 Microsoft 问题?我正在使用 Visual Studio 2015 Update2

你会如何处理这个问题?最后,我希望有一个存储库,其中包含不同的对象及其之间的父/子关系。在调试过程中到处查看关系会很有帮助。

【问题讨论】:

【参考方案1】:

我能够通过为所有缺失类型添加模板实例化来解决我的问题。这些必须在没有 declspec(dllexport) 或 extern 的情况下编写,所以现在我有一堆

template class std::unordered_map<const Parent*, std::vector<Child*>>;

在我的 Repo.h 中。我还必须将 /bigobj 添加到 cl.exe

【讨论】:

以上是关于在调试不同的 dll 期间显示地图的内容的主要内容,如果未能解决你的问题,请参考以下文章

在vc调试期间查找源代码中的错误位置

仅在调试期间在 C++ 中初始化 matlab-compiler dll / lib 时访问冲突

这种情况一直在发生 - 在 Visual Studio 2019 中的 .NET Core 3.1 调试会话期间找不到 Microsoft.Data.SqlClient.resources.dll

C#2005调试出现“没有可用于当前位置的源代码”

浏览 VC6 DLL 变量内容(DEBUG)

如何在调试期间在 FreeRTOS 任务列表中显示运行时