在调试Qt 5应用程序时,我有时对Qt 5的内部不感兴趣,而是对应用程序本身的结构感兴趣.因此,我不需要加载Qt 5库的所有调试符号,因为这些符号需要几秒钟才能加载.
是否可以阻止GDB为这些Qt 5库加载符号,同时保留我的应用程序的调试符号?
正在修改现有的.NET项目。给定Visual Studio中的C#类,我如何找出具有它的DLL?
问题是我想在新项目的此类中使用一种方法,因此我需要找到要添加的正确的DLL作为新项目的参考。
我有一个我不熟悉的庞大代码库,程序异常终止,因为某个地方的线程正在调用__fastfail. 这是基于消息,它以
... 要求退出致命程序。
调用堆栈没有符号,因为它位于 C++ 2015 运行时 ( ucrtbase.dll) 中。该调用似乎是在我的主线程以外的线程上进行的。这个神秘的线程只在问题发生之前开始,所以我无法捕捉到它在调试器中开始的行为 - 我不知道是什么启动了它,以及首先是什么导致了整个过程。
我的main()using 中有 SEH __try/__catch,所以任何未处理的异常都应该被困在那里。相反,我猜测某处的某些东西会冒泡到运行时并导致__fastfail.
我尝试用 SEH 填充我的所有线程,就像main(),尝试挂钩abort(),exit()和terminate(),但找不到问题。我如何调试这个,任何提示?
我已经安装了Visual Studio 2015并且还安装了Oracle12c最新版本数据库,我正在尝试为Visual Studio安装Oracle Developer Tools,但它显示以下错误:
单击下一步按钮时,显示以下错误:
我该怎么做才能安装Oracle Developer Tools?
installation visual-studio odac oracle12c visual-studio-2015
我试图将我的Qt应用程序静态链接到Windows下的Google Breakpad,但我总是得到未解决的符号错误.我正在使用qmake和VC++ 2008,我的项目文件似乎有些问题.似乎链接器忽略了我的LIBS规范,因为无论我是否将库添加到LIBS,我都会收到错误.
我用以下方法编译了Breakpad:
vcbuild /platform:Win32
Run Code Online (Sandbox Code Playgroud)
Google Breakpead在src\processor\test_app.cc中包含一个示例.如果我按照建议编译它,一切都很顺利:
C:\test>cl /Zi test_app.cc /Fetest_app.exe /I C:\google-breakpad\src C:\google-breakpad\src\client\windows\Release\lib\exception_handler.lib C:\google-breakpad\src\client\windows\Release\lib\crash_generation_client.lib C:\google-breakpad\src\client\windows\Release\lib\common.lib
Run Code Online (Sandbox Code Playgroud)
但是,如果我尝试使用类似的.pro文件使用qmake构建它,我会得到相同的未解决的符号错误.这是我用来的.pro文件:
TEMPLATE = app
TARGET =
DEPENDPATH += .
INCLUDEPATH += .
INCLUDEPATH += C:/google-breakpad/src
SOURCES += test_app.cc
LIBS += C:/google-breakpad/src/client/windows/Release/lib/exception_handler.lib
LIBS += C:/google-breakpad/src/client/windows/Release/lib/crash_generation_client.lib
LIBS += C:/google-breakpad/src/client/windows/Release/lib/common.lib
PRE_TARGETDEPS += C:/google-breakpad/src/client/windows/Release/lib/exception_handler.lib
PRE_TARGETDEPS += C:/google-breakpad/src/client/windows/Release/lib/crash_generation_client.lib
PRE_TARGETDEPS += C:/google-breakpad/src/client/windows/Release/lib/common.lib
Run Code Online (Sandbox Code Playgroud)
建立它:
C:\test>qmake -config release
C:\test>nmake
Microsoft (R) Program Maintenance Utility Version 9.00.21022.08
Copyright (C) Microsoft Corporation. All rights reserved.
"C:\Program files\Microsoft Visual Studio 9.0\VC\BIN\nmake.exe" -
f Makefile.Release …Run Code Online (Sandbox Code Playgroud) 我有一个项目,用一个类库项目创建一个新的解决方案.我想要使用外部可执行应用程序设置该解决方案的类库的Debug Start外部程序选项(不是手动,应该在创建解决方案时填充).
我不知道执行此任务的库.
我试图了解应用程序中各种线程消耗的 CPU 时间的数学计算。.time下面的命令告诉我,我的进程启动了大约 7 分钟,据我所知,这基本上是该进程总体消耗的 CPU 时间。基于此,单个线程消耗的时间加起来也应该是 7 分钟,但远远超过 7 分钟。
0:140> .time
Debug session time: Fri May 8 15:05:16.000 2015 (UTC - 4:00)
System Uptime: 22 days 17:00:27.560
Process Uptime: 0 days 0:06:45.000
Kernel time: 0 days 0:00:23.000
User time: 0 days 0:26:24.000
0:140> !runaway
User Mode Time
Thread Time
8:39f4 0 days 0:01:46.236
126:1184 0 days 0:01:45.394
136:b9c 0 days 0:01:42.851
117:37c8 0 days 0:01:42.009
132:fb8 0 days 0:01:38.046
135:4a94 0 days 0:01:33.834
131:3dd0 0 days …Run Code Online (Sandbox Code Playgroud) 我正在使用反射创建一个对象的实例,并在对象的类中获取方法,但是当我必须使用类型数组Type来避免歧义问题时,问题就来了,这里是我的代码示例我试图达到.
public class BigClass
{
public void getSomething(XmlDocument doc, ref CustomObject obj) {...}
public void getSomething(XmlDocument doc, ref CustomObject obj, string id) {...}
}
Run Code Online (Sandbox Code Playgroud)
此代码来自外部程序集(file.dll),我正在使用下一个代码.
Assembly a = Assembly.LoadFrom("file.dll");
Type s = a.GetType("FileNamespace.BigClass");
MethodInfo inf = s.GetMethod("getSomething", new [] {typeof(XmlDocument), typeof(CustomObject), typeof(string)});
Run Code Online (Sandbox Code Playgroud)
要获取MethodInfo使用3个参数的对象,但变量"inf"为空,我认为因为它没有找到使用"ref"的参数的方法.
有办法解决这个问题吗?
我正在调试在Visual Studio 2015 Community Edition中创建的简单Hello World应用程序.它是一个.NET通用应用程序,没有问题.
我只是在应用程序空闲时点击Visual Studio中的Break(暂停)按钮,然后转到Debug | Save dump as ...并尝试使用默认设置(Minidump with heap)保存转储.
但是,我收到以下错误消息:
保存转储时出错.指针无效.
保存没有堆信息的转储有效,但是对于要分析的.NET应用程序,我应该有堆.
版本细节:
我正在尝试分析一些迷你崩溃转储.我正在使用Windows 10 Pro Build 1607和WinDbg 10.0.14321.1024.我将符号文件路径设置为
SRV*C:\SymCache*https://msdl.microsoft.com/download/symbols
Run Code Online (Sandbox Code Playgroud)
基本上,每当我加载一个minidump(所有<1 MB .dmp文件)时,永远需要WinDbg来实际分析它们.我知道第一次运行可能需要很长时间,但是在它让我输入命令之前差不多花了12个小时.我认为,由于符号被缓存,重新打开相同的.dmp将花费很长时间.不是这种情况.它加载,几乎瞬间到"加载内核符号",然后再打印"BugCheck"行再过30分钟.已经过了30分钟,我仍然无法输入命令.
我的电脑有512 GB SSD,8 GB RAM和i5-4590.我认为不应该这么慢.
我究竟做错了什么?