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

2023-11-27

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

我正在使用 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命令。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

WinDBG - 如何设置所有异常传递到应用程序中? 的相关文章

随机推荐