Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
编写WinDBG脚本,使其在每次调用堆栈中断时接受调用堆栈,然后继续(未处理的ex,或被调试对象说debug.break())_Windbg - Fatal编程技术网

编写WinDBG脚本,使其在每次调用堆栈中断时接受调用堆栈,然后继续(未处理的ex,或被调试对象说debug.break())

编写WinDBG脚本,使其在每次调用堆栈中断时接受调用堆栈,然后继续(未处理的ex,或被调试对象说debug.break()),windbg,Windbg,我们正在运行一个应用程序,恰巧是我们编写的web服务器,我们只是在生产中说了一些令人讨厌的问题,所以在大约12个小时内,我们将把它放在WinDBG下,并在每次出现故障时接受调用堆栈 有时它会因为一个未处理的异常而中断,有时我们会点击一个断言,这时我们的代码会说如果在调试器下运行,则中断 有没有可能以这样一种方式连接到WinDBG:一旦WinDBG断开,它就会接受一个调用堆栈,并立即移动?试试看 sxe -c "kb;g" -h wkd 及 在windbg的帮助文档中搜索控制异常和事件以获取更多

我们正在运行一个应用程序,恰巧是我们编写的web服务器,我们只是在生产中说了一些令人讨厌的问题,所以在大约12个小时内,我们将把它放在WinDBG下,并在每次出现故障时接受调用堆栈

有时它会因为一个未处理的异常而中断,有时我们会点击一个断言,这时我们的代码会说如果在调试器下运行,则中断

有没有可能以这样一种方式连接到WinDBG:一旦WinDBG断开,它就会接受一个调用堆栈,并立即移动?

试试看

sxe -c "kb;g" -h wkd


在windbg的帮助文档中搜索控制异常和事件以获取更多相关信息。

将调试器附加到生产框可能会带来灾难性后果,(a)性能(b)调试器意外中断

为了安全起见,一定要确保禁用所有不关心或不想闯入调试器的异常

sxd *
然后,选择你想以某种方式处理的(使用callstack,然后继续)

第一个是断点异常处理程序、断言失败和C++ EH异常。 调试器支持的内容有很多,例如,如果加载SOS.dll(WinDBG的CLR扩展名),则可以

sxe -c "kb;g" clr
有关可能筛选的异常/事件类型的权威信息,请参阅WinDbg帮助(搜索sxe)

sxe -c "kb;g" bpe
sxe -c "kb;g" asrt
sxe -c "kb;g" eh
sxe -c "kb;g" clr