我能在windbg中显示GUID吗?

8

我正在尝试调试一些COM组件,并想要追踪在调用CoCreateInstance时的CLSID和IID。

我不确定如何在windbg中显示GUID。有什么指针吗?

2个回答

10
使用“display type”命令:
dt GUID [address-of-guid]

如需更多信息,请参阅文档

如果它在本地变量中(局部于您所在的堆栈帧),请使用dv /V来转储所有本地变量。


3
谢谢指点,但这个命令需要稍微调整一下。 以下操作可以正常工作: dt nt!_GUID address-of-guid. - anand
是的,如果你不告诉它nt!它会搜索所有已加载的模块直到找到它。另外,是的,我猜GUID会变成_GUID。很好的发现。 - i_am_jorf

0

我对COM一无所知,但如果这只是一个普通的变量(即使是全局变量),那么您始终可以执行以下操作:

按alt+2打开监视窗口,然后在那里输入变量名,例如:

blahblah.dll!guid

你需要这些符号,可能需要进入源代码模式。这比dv/dt稍微好一点,因为你不必不断地输入它。你也可以输入地址,我想。请注意,如果你不加上blahblah!,那么有时会导致windbg在搜索每个模块中是否有名为guid的东西时停顿几秒钟。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接