c:\WinDDK\7600.16385.1\Debuggers>kdsrv.exetcp:port=60001c:\WinDDK\7600.16385.1\Debuggers>kd-remotetcp:server=\\127.0.0.1,port=60001DebugConnectfailed,HRESULT0x80010007"Thecallee(server[notserverapplication])isnotavailableanddisappeared;allconnectionsareinvalid.Thecallmayhaveexecuted."我使用的是Win7,并
我在转储中嵌入了自定义流(即将UserStreamParam参数传递给MiniDumpWriteDump函数)。现在,我正在尝试从WinDbg扩展中提取流。(请注意,我已验证我可以使用MiniDumpReadDumpStream函数检索流)。我在IDebugAdvanced2::Request请求中使用DEBUG_REQUEST_READ_USER_MINIDUMP_STREAM方法。我能够从标准流中检索数据。例如,以下代码段将正确检索misc信息流的内容。DEBUG_READ_USER_MINIDUMP_STREAMrums={};rums.StreamType=MiscInfoSt
我处理大型应用程序,经常使用WinDbg根据客户的DMP文件诊断问题。我已经为WinDbg编写了一些小的扩展,这些扩展被证明对于从DMP文件中提取信息位非常有用。在我的扩展代码中,我发现自己以相同的方式一遍又一遍地手动取消引用c++类对象。例如:Address=GetExpression("somemodule!somesymbol");ReadMemory(Address,&addressOfPtr,sizeof(addressOfPtr),&cb);//gettheactualaddressReadMemory(addressOfObj,&addressOfObj,sizeof(a
我仍然是C++的新手,我在从我的nativeC++DLL静态链接到的第三方DLL上遇到了问题。我正在使用VisualStudio2012调试我的DLL。(FWIW,第三方DLL是SybaseOpenClient,我正在通过我编写的C#可执行文件调试我的DLL,它会动态加载我的C++DLL。)我使用VisualStudio进入反汇编并查看第三方DLL的寄存器和内存使用情况。VisualStudio为我提供了很多关于我的流程中发生的事情的有用信息,但我觉得那里可能比我看到的更多,而且可能是一种更简单或更有效的方法。我读到过WinDbg是一个非常强大的工具,但是要学会很好地使用它需要花费大量
问题:如何使用WinDbg显示C++迭代器的值,如下所示for(vector::iteratori=args.begin();i!=args.end();i++)//omitted//forinstance:}elseif(*i=="-i"){//attemptingtodisplaythevalueof*i++i;if(!::PathFileExistsA(i->c_str())){注意:使用??计算C++表达式命令,显示如下:0:000>??iclassstd::_Vector_iterator,std::allocator>,std::allocator,std::allocat
我正在调试用VC++编写的应用程序。如何让WinDbg在执行调试进程期间打印函数名称和函数参数的所有值? 最佳答案 好的,我刚刚发现可以使用"wt"来完成命令。 关于c++-如何在WinDbg执行期间打印每个函数调用?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/2261848/
documentation说:Ifyouincludethestringsrv*inyoursymbolpath,thedebuggerusesasymbolservertogetsymbolsfromthedefaultsymbolstore.Forexample,thefollowingcommandtellsthedebuggertouseasymbolservertogetsymbolsfromthedefaultsymbolstore.Thesesymbolsarenotcachedonthelocalcomputer..sympathsrv*但是我发现符号被缓存了。我使用的
Windbg粉丝声称它非常强大,我倾向于同意。但是当涉及到调试STL容器时,我总是卡住了。如果变量在堆栈上,则!stl扩展有时会解决这个问题,但是当具有复杂类型(例如std::vector>)的容器位于堆上或某些其他结构的一部分时,我只是不知道如何查看其内容。感谢任何提示、指示。 最佳答案 我经常发现调试器对STL数据类型的支持不足。出于这个原因,我越来越多地使用loggingframeworksandloggingstatements.我曾经认为这些是为那些不能使用调试器的人准备的,但我现在意识到它们提供了真正的值(value)。
是否可以从文件/设备句柄(由CreateFileAPI返回)中检索目标设备名称(\Device\ExampleDevice)或文件名。实际上,我有一个用户模式应用程序,它使用DeviceIoControl()与内核驱动程序通信。因此,当应用程序运行时,我在Kernel32!DeviceIoControl处设置了一个断点。所以当应用程序遇到断点时,我从堆栈中收集了目标设备句柄,应用程序正在向其发送IOCTL。我们知道第二个参数是目标设备句柄。我想知道,有什么方法可以从句柄中获取设备名称(\Device\ExampleDevice),在这种情况下是0x000007bc,而无需在Create
我想通过调用在脚本中编写的预定义命令来获取导致崩溃的线程的堆栈跟踪,以便我运行脚本并获得包含所有线程的反向跟踪的日志文件。然后我可以解析此日志文件以查看是否存在已知问题。 最佳答案 我建议您看一下cdb.它是windbg的一个功能非常全的命令行版本,应该已经与windbg一起安装了。您可以告诉它打开转储、打印堆栈跟踪并使用命令行退出:cdb-zyourdump.dmp-c"~*kv;q"或者您甚至可以幻想并使用以下方法进行一些自动化分析:cdb-zyourdump.dmp-c"!analyze-v;q"这可能更有意义,因为它会在第二