Debugging 如何使用Windbg从堆栈中获取Mono函数的名称

Debugging 如何使用Windbg从堆栈中获取Mono函数的名称,debugging,mono,windbg,Debugging,Mono,Windbg,我正在尝试使用WinDbg调试mono应用程序。应用程序挂起在WinDbg无法内部解码的C代码内部的无限循环中 我知道我可以使用函数mono_pmip将堆栈地址转换为函数名 我在用。打电话给mono!mono_PMIP03A0630使用x*验证是否可用*pmip*,但我仍然无法获得函数的输出,取而代之的是访问冲突 这是堆栈: 34 018feee8 071824eb 0x71824eb 35 018fef08 07181f4c 0x71824eb 36 018fef28 0717fd8a 0x7

我正在尝试使用WinDbg调试mono应用程序。应用程序挂起在WinDbg无法内部解码的C代码内部的无限循环中

我知道我可以使用函数mono_pmip将堆栈地址转换为函数名

我在用。打电话给mono!mono_PMIP03A0630使用x*验证是否可用*pmip*,但我仍然无法获得函数的输出,取而代之的是访问冲突

这是堆栈:

34 018feee8 071824eb 0x71824eb
35 018fef08 07181f4c 0x71824eb
36 018fef28 0717fd8a 0x7181f4c
37 018fef68 071708ae 0x717fd8a
38 018fefc8 07170328 0x71708ae
39 018ff078 0716efa5 0x7170328
3a 018ff0e8 0716ed4c 0x716efa5
3b 018ff108 18de8f88 0x716ed4c
3c 018ff1b8 18de75ff 0x18de8f88
3d 018ff208 18de6f6f 0x18de75ff
3e 018ff238 18de660c 0x18de6f6f
3f 018ff2f8 18de60ce 0x18de660c
40 018ff328 18de6033 0x18de60ce
41 018ff348 18ddf586 0x18de6033
42 018ff3e8 18ddebc6 0x18ddf586
43 018ff408 18dde13e 0x18ddebc6
44 018ff418 063a0630 0x18dde13e
45 018ff450 100f1328 0x63a0630
46 018ff480 1005d984 mono!mono_jit_runtime_invoke+0x214 [c:\buildslave\mono\build\mono\mini\mini.c @ 4936]
47 018ff4a4 0035e9ce mono!mono_runtime_invoke+0x51 [c:\buildslave\mono\build\mono\metadata\object.c @ 2623]
如果我在VisualStudio中使用即时窗口,同样的功能实际上也可以工作

(char*)mono.dll!mono_pmip((void*)0x63a0630)
0x15ebf258 " Login.Login:OnClickLoginButton () + 0x4b (21FF75F8 21FF765C) [06E26E70 - Unity Root Domain]"
我仍然需要让它在Windbg中运行:


我想知道我是否必须在要调试的调用堆栈的同一线程上执行调用。

我意识到我从未回答过这个问题。char*mono.dll!mono_pmipvoid*地址仅在主线程上可用,因此我必须首先从线程列表中选择主线程。

我有另一个线索,我想我必须这样写:。调用mono!单声道pmip0x6c2c5df