简体   繁体   English

调试C ++本机Windows Phone 8应用

[英]Debugging C++ Native Windows Phone 8 app

I am trying to figure out how to get to 0x0001556c offset of my application. 我试图弄清楚如何获取我的应用程序的0x0001556c偏移量。 This is the error that came in apphub: 这是apphub中出现的错误:

"Frame    Image                            Function               Offset        
0        kernelbase                       RaiseException         0x00000036    
1        msvcr110                         _CxxThrowException     0x0000005a    
2        windowsphone8program                                    0x0001556c"

A C++ exception is being thrown, but I need to see what the assembly looks like around it to figure out what exception is thrown 抛出了C ++异常,但是我需要查看程序集周围的样子,以找出抛出了什么异常

The windowsphone8program is a dll file, how would I be able to navigate to the 0x0001556c offset? windowsphone8program是一个dll文件,如何导航到0x0001556c偏移量? What tools can I use? 我可以使用哪些工具?

I've tried locating 0x0001556c in my code but it's just ?? ?? 我试过定位0x0001556c在我的代码,但它只是?? ?? ?? ?? in Visual Studio. 在Visual Studio中。

Is it possible to debug this error? 是否可以调试此错误?

I'm not sure that there are any tools that will help you here, but I could be wrong. 我不确定是否有任何工具可以帮助您,但是我可能是错的。

I think your best choice is to create a sample application that loads your DLL. 我认为最好的选择是创建一个加载DLL的示例应用程序。 Once it's loaded, acquire the address it was loaded at, offset the address by 0x0001556C , and use the functions provided by dbghelp (particularly SymFromAddr ) to get the symbol matching the address. 加载后,获取其加载地址,将地址偏移0x0001556C ,然后使用dbghelp提供的功能(尤其是SymFromAddr )来获取与该地址匹配的符号。

You can retrieve the base address of the DLL either by breaking into the debugger and checking your Modules window, or by calling GetModuleHandle with your DLL's name and treating the return value as the base address. 您可以通过进入调试器并检查“模块”窗口,或通过使用DLL的名称调用GetModuleHandle并将返回值视为基地址来检索DLL的基地址。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM