0

并声明调用将返回封闭函数的符号的文档。我将其解释为我将得到一个who方法返回。但是,当我这样做时,它会返回我而不是函数。所以文档看起来是错误的,但更糟糕的是我不确定如何将and绑定到包含.SymTagFuncDebugStartSymTagFuncDebugEndIDiaSymbol::get_lexicalParentIDiaSymbolget_symTagSymTagFunctionSymTagCompilandSymTagFuncDebugStartSymTagFuncDebugEndSymTagFunction

有人知道吗?一些转储表明,SymTagFuncDebugStart并且在通过 枚举符号时SymTagFuncDebugEnd总是紧跟在相应的后面。或者换一种说法,如果函数返回,它将分别返回 func 调试开始和 func 调试结束。SymTagFunctionIEnumSymbolsIDiaSymbol::get_symIndexIdnn+1n+2

但我不能确定这总是正确的,这似乎不可靠且不可靠。

有没有人对正确的方法有任何建议?

4

2 回答 2

0

你能把你的代码贴在这里吗?我猜你的代码有问题。调用get_lexicalParent并应返回SymTagFuncDebugStartSymTagFuncDebugEnd封闭函数 ( SymTagFunction) 关联的符号。

于 2015-04-28T09:41:54.470 回答
0

我最终得到了这个工作。问题是,当您使用 枚举全局范围内的所有符号时SymTagNull,您会发现FuncDebugStartandFuncDebugEnd符号。这些符号的词法父级是全局作用域,因为它是“父级”,因为它向您提供了指向FuncDebugStartFuncDebugEnd符号的指针。

然而,如果你通过调用一个实际的符号来获得FuncDebugStartand ,那么它的词法父级实际上就是原始函数。所以这是一个文档不清晰的问题。FuncDebugEndfindChildrenSymTagFunction

于 2015-04-29T20:56:27.103 回答