0

我正在尝试构建一个迷你分析器。它记录给定测试集的函数调用,并且应该稍后告诉给定模块中的哪些函数已运行。

我记录了一堆虚拟地址,我可以廉价地转换成成对的[模块名称,地址偏移]。

在每个进程中加载​​ PDB 并查询它的符号名称是一项非常昂贵的操作。

我正在考虑保存 [模块名称,地址偏移] 列表,然后将 PDB 加载到后处理程序中并将这些映射到符号一次。

现在我不确定模块/dll 是否总是以相同的方式加载,即符号与模块库的虚拟地址偏移量是否总是相同的?

如果模块(相同的二进制 dll)在不同的 Windows 版本(例如 Win7 与 WinServer2008)上加载,是否也一样?

4

0 回答 0