gpt4 book ai didi

windows - 将 windbg 命令输出写入文件,但不写入控制台

转载 作者:可可西里 更新时间:2023-11-01 11:45:35 30 4
gpt4 key购买 nike

在 windbg 中,我正在寻找一种机制来获取命令的输出(特别是断点内的命令)并将其附加到文件中,写入控制台。

目前我使用 .logappend C:\path\to\log 设置进程,然后启用几个断点:

bp WIN32U!{function} ".echo '===WIN32K-START==='; k; .echo '===WIN32K-END==='; g"

这很好用,除了写入控制台的输出量会导致严重的性能问题。我希望有一种方法可以获得相同的输出到我的日志文件,而无需写入 windbg 控制台的开销。

最佳答案

您需要 .outmask 元命令:https://learn.microsoft.com/en-us/windows-hardware/drivers/debugger/-outmask--control-output-mask-

.outmask 允许您控制将哪些消息类型发送到输出窗口和日志文件。 /l 开关允许您仅更改到达输出窗口的类型,而不影响将到达日志文件的类型。

例如,此命令将关闭输出窗口的所有输出,同时仍将正常消息发送到日志文件:

.outmask- /l 0xffff

虽然 .outmask-/l 1 可能就是您所需要的,它只会关闭正常的消息输出,但错误和警告仍会显示在输出窗口中。完成后,使用 .outmask/d 将输出设置重置为默认值。

结合 .printf 输出不同消息类型的能力,您可以使它仍然对发生的事情有所了解。使用 .outmask-/l 1 关闭到窗口的正常消息输出。现在您可以在某处的断点命令中使用 .printf/oe "message" 来编写错误消息,该消息仍将发送到输出窗口,因此您可以了解过程中某些点发生的情况.

关于windows - 将 windbg 命令输出写入文件,但不写入控制台,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46182387/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com