3

我想使用“dt”或“??”更改某些类型的显示方式 以类似于使用 autoexp.dat 执行此操作的方式。有没有办法做到这一点?

例如,我有一个类似这样的结构:


struct Foo
{
    union Bar
    {
       int a;
       void *p;
    } b;
};

我有几百个这样的数组,我知道所有这些都指向一个结构 Bar。有没有办法告诉 cdb,无论如何,在这个表达式中,'p' 是指向 Bar 的指针?这是你可以用 autoexp 做的事情。(这里的具体例子是我有一个可以有任何类型的键的存储表,但我知道它们的键是字符串。实现将它们存储为 void 指针)。

提前致谢!

4

2 回答 2

2

我认为没有像 autoexp.dat 这样简单的东西。

您有几个潜在的选择 - 您可以使用调试器命令编写一个简单的脚本文件,以您想要的方式转储数据结构并使用“ $<filename”命令(或其变体之一)。结合用户别名,您可以使其非常容易和自然地使用。

第二个选项涉及更多,但随之而来的是更强大的功能 - 编写一个转储数据结构的扩展 DLL。对于像你所说的那样的事情,这可能是矫枉过正。但是您拥有调试器扩展的强大功能(事实上,调试工具包中的大部分功能都是通过这种方式实现的)。SDK 与调试器一起打包,因此很容易确定这是否是您可能需要的。

于 2009-06-30T04:24:07.657 回答
1

您可以说duda让它将内存转储为 unicode 或 ascii 字符串。

于 2009-06-30T01:15:38.080 回答