WinDBG-如何设置所有要传递到应用程序的异常?

标签 windbg ida

如何设置所有异常行为以传递给应用程序并且不出现在调试器中?

我正在使用IDA Pro 6.6和WinDbg。

最佳答案

一次对所有异常类型执行此操作有点尴尬

.foreach(exc {sx}) {.catch{sxd ${exc}}}

它能做什么:
  • {sx}:列出所有异常类型(以及您实际上不想要的当前设置)
  • exc:分配变量
  • .foreach(...) {...}:将其切成单个单词并执行命令
  • sxd ${exc}:禁用变量exc
  • 中的任何内容
  • .catch{...}:忽略来自设置信息
  • 的所有错误消息

    上述方法的优点是它与WinDbg版本无关。如果引入了新的异常代码,它将仍然有效。

    可以使用PyKd避免处理不需要的文本。将以下脚本保存到文件sdx.py中,然后运行!py sxd.py:
    from pykd import *
    
    sx = dbgCommand("sx")
    for s in sx.splitlines():
        ex = s[:4]
        if  not ex=="" or ex.isspace():
            print("sxd "+ex)
            dbgCommand("sxd "+ex)
    

    另一种选择是手动处理所有异常:
    .foreach(exc {.echo "ct et cpr epr ld ud ser ibp iml out av asrt aph bpe bpec eh clr clrn cce cc dm dbce gp ii ip dz iov ch hc lsq isc 3c svh sse ssec sbo sov vs vcpp wkd rto rtt wob wos *"}) {.catch{sxd ${exc}}}
    

    但是,如果WinDbg中有新的异常代码,则必须将它们添加到.echo命令中。

    关于WinDBG-如何设置所有要传递到应用程序的异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28306310/

    相关文章:

    vb6 - 对 VB6/Winsock/ADO 应用程序进行逆向工程

    ida - 如何在 IDA 6.1 的程序集 View 中禁用图形模式?

    windbg - 如何进行混合用户模式/内核模式调试?

    windows - 何时以及如何使用 windbg 内核调试

    debugging - 使用WinDbg,我可以在进程运行时修改内存中的项目吗?

    assembly - 如何将 IDA Pro 的 "see"外部参照设置为字符串?

    c++ - 如何定位 WinRT 异步方法调用中出现错误的位置?

    c# - 如何在WinDBG中分析内核转储

    windbg - WARNING : [something] overlaps [something] in Windows Debugger mean? 是什么意思

    .net-4.0 - w3wp.exe 崩溃 - ThreadAbortException