使用WinDbg时,应该在哪里放置私有符号文件(pdb?)?
我的情况是:我有一个我想调试的DLL.我有这个DLL的源代码和符号文件.这个DLL由另一个DLL(我没有符号或源代码)调用,而这个DLL又由EXE调用(我也没有符号或源代码).
我的问题是我收到了警告
***警告:无法验证C:\ TheProgram\SomeSubfolder\AnotherSubfolder\MyDll.dll的校验和
我认为这个警告是我在调用堆栈中获取以下类型的消息的原因:
MYDLL!ACLASS ::机能缺失+ SomeHexAddress
我的文件结构如下所示:
exe:C:\ TheProgram\program.exe
调用dll:C\TheProgram\SomeSubfolder\caller.???
我要调试的DLL:C:\ TheProgram\SomeSubfolder\AnotherSubfolder\MyDll.dll
注意:我将符号文件路径和源文件路径设置为生成调试DLL的位置,在我的工作区中与exe的不同驱动器上..但我确实复制了pdb + map文件并将其放在我想要的dll上调试..
我已成功制作了几个Visual Studio调试器可视化工具,并且它们工作得非常好,除了在某些对象上我尝试使用反序列化对象时出现超时错误 objectProvider.GetObject()
System.Exception: Function evaluation timed out.
at Microsoft.VisualStudio.DebuggerVisualizers.DebugViewerShim.PrivateCallback.MaybeDeserializeAndThrowException(Byte[] data)
Run Code Online (Sandbox Code Playgroud)
超时发生的时间相当快(可能在我点击可视化器图标后大约一秒钟),即使我的其他可视化工具工作正常,即使大型数据对象显示更长时间(5-10秒)仍然没有超时.
我已经创建了一个自定义对象源来限制序列化到我需要显示的字段.我还能做些什么来使数据反序列化而不超时?
我有一些代码可以访问网络上的API.API的参数之一允许我让他们知道我正在测试.
我想在测试时只在我的代码中设置此参数.目前,我只是在发布版本时对代码进行评论.
是否有基于构建配置的自动方式?
场景:
我刚刚开始实现一堆代码,但是当我执行它时,我会抛出一个StackOverflowException?StackOverflowException没有堆栈跟踪,所以我卡住了.我知道为什么会发生堆栈溢出,但要修复它我需要知道它的根目录是什么.
我得到的是:tag-you-it.dll中出现未处理的"System.StackOverflowException"类型异常
选项:
PS:
这是一种假设情况(虽然并不常见),因此没有可用的代码.
backtrace函数给出一组回溯如何用函数名/文件名/行号映射它?
for ex:-
backtrace() returned 8 addresses
./libtst.so(myfunc5+0x2b) [0xb7767767]
./libtst.so(fun4+0x4a) [0xb7767831]
./libtst.so(fun3+0x48) [0xb776787f]
./libtst.so(fun2+0x35) [0xb77678ba]
./libtst.so(fun1+0x35) [0xb77678f5]
./a.out() [0x80485b9]
/lib/libc.so.6(__libc_start_main+0xe5) [0xb75e9be5]
./a.out() [0x80484f1]
Run Code Online (Sandbox Code Playgroud)
从上面的堆栈我怎样才能获得文件名和行号?我做了以下事情,但没有运气.如果我错了,请纠正我:)
for ex:-
./libtst.so(fun2+0x35) [0xb77dc887]
0xb77dc887(fun2 addr+offset)-0xb77b6000 (lib starting addr) = 0x26887 (result)
result is no way related to function in nm output.
I used addr2line command:-
addr2line -f -e libtst.so 0xb77dc887
??
??:0
Run Code Online (Sandbox Code Playgroud)
那么,我如何在运行时或运行后解析?提前致谢...
nm:-
00000574 T _init
00000680 t __do_global_dtors_aux
00000700 t frame_dummy
00000737 t __i686.get_pc_thunk.bx
0000073c T myfunc5
000007e7 T fun4
00000837 T fun3 …Run Code Online (Sandbox Code Playgroud) 我正在使用NetBeans 7作为我的IDE在Windows 7中的mingw32下使用g ++编写软件渲染器.
我一直需要对它进行描述,而这种需求已达到临界质量,因为我已经过去了解结构.我环顾四周,对我而言,这个答案显示了同时跨平台和保持简单的最大希望.
这种方法的要点是,可能最基本的(在许多方面,最准确的)分析/优化方法是直接通过暂停执行来直接对堆栈进行采样......不幸的是,NetBeans 不会暂停.所以我试图找出如何直接使用gdb进行此采样.
关于gdb,我不太了解.但是,我从手册页中可以看出,您在运行可执行文件之前设置了断点.这对我没有帮助.
有没有人知道一个简单的方法来获取gdb(或其他gnu工具):
...给出我陈述的配置?
在VS2012中,我的Web项目总是如此调试.我使用IIS Express.今天,我安装了VS 2013,当我按F5进行调试时,我得到了

我无法在任何地方找到解决方案.我尝试清除临时文件,将端口号从7227更改为其他内容,删除iis express配置文件等.我甚至卸载并重新安装VS 2013.
我可以在没有调试的情况下运行,然后连接到IISExpress并且可以工作,但我不能从F5开始.有线索吗?
编辑:发生在另一台机器上以及全新安装的Windows 8.1和VS 2013
编辑:解决方案:我已将Silverlight检查为调试器.我取消选中Silverlight,我可以使用F5使用Chrome或Firefox进行调试.显然有些东西不在这里,但我还是不需要Silverlight调试.
debugging silverlight visual-studio-debugging iis-express visual-studio-2013
我正在尝试调试一个不是我编写的Web应用程序.发生了一个失败的XMLHttpRequest:
XMLHttpRequest cannot load ... No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin '...' is therefore not allowed access.
Run Code Online (Sandbox Code Playgroud)
有没有办法,最好使用Chrome开发者工具,找到这个电话的来源?
我有一个复杂的Shiny应用程序,分布在多个文件中,使用来自多个软件包的代码.该应用程序在R Studio中本地运行时有效,但在我的服务器上它会抛出一般错误:
错误:不知道如何将'x'转换为类"Date"
这可能是一个简单的编程错误,但确定错误在代码中的确切位置证明是困难的.
我怎样才能找到并修复Shiny应用程序中的错误来源?有哪些工具可以系统地完成这项工作?
对Google网上论坛存在类似问题的一些讨论.
这是我第二次在Visual Studio 2015中看到错误"Scripted Sandbox64.exe已停止工作".
在我的特定情况下,我正在构建Windows窗体应用程序,并将应用程序放入Windows中的系统托盘中.此应用程序还使用System.IO写入文件.该项目只有这一点.Visual Studio 2015社区版崩溃.
debugging ×10
.net ×2
c ×1
c# ×1
c++ ×1
dll ×1
gdb ×1
gnu ×1
iis-express ×1
javascript ×1
netbeans ×1
r ×1
sandbox ×1
shiny ×1
silverlight ×1
stack-trace ×1
symbols ×1
vb.net ×1
windbg ×1