gpt4 book ai didi

c++ - 无论模板参数如何,哪些 std::map 方法是相同的(并且可能共享符号)?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:48:48 24 4
gpt4 key购买 nike

我有一个正在尝试分析的故障转储 (VC++ 2010)。

然后我有一个看起来像这样的调用堆栈(为了便于阅读,我在这里做了很多修剪):

myapp.exe!std::_Tree<std::_Tmap_traits<unsigned int,StructB,std::less<unsigned int> ... >::_Erase(...)
myapp.exe!std::_Tree<std::_Tmap_traits<unsigned int,StructA,std::less<unsigned int>,... >::clear()

(clear() 调用 _Erase() )

注意值的模板参数的区别(StructA 与 StructB)。现在,我知 Prop 有完全相同二进制文件的不同方法在 PDB 中可以具有相同的符号,即使它们实际上使用不同的代码也是如此。我假设这里就是这种情况(无论值类型如何,std::map::_Erase 都是相同的)。

但是我怎么知道呢?是否有适用的 STL 方法列表(针对此 MS 实现)?这可能是某种错误吗?

更新:

查看 PDB(在文本编辑器中),我看到许多 std::map<...>::_Erase,特别是 StructA 和 StructB。我不知道折叠是否意味着什么。

此外,std::map 的反汇编代码显示了对解释为 std::map 的地址的调用。我猜这意味着代码折叠......

最佳答案

您可以使用/OPT:NOICF 来禁用代码折叠行为。

http://msdn.microsoft.com/en-us/library/bxwfs976%28v=vs.80%29.aspx

关于c++ - 无论模板参数如何,哪些 std::map 方法是相同的(并且可能共享符号)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16427124/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com