【问题标题】:Put messages into Win Crash Dump; !dbgprint; DbgPrint; DbgPrintEx将消息放入 Win Crash Dump; !dbgprint;数据库打印; DbgPrintEx
【发布时间】:2022-01-04 04:37:53
【问题描述】:

我正在“调试”由 Win10 机器上的驱动程序引起的 BSOD。

我尝试使用DbgPrint()DbgPrintEx() 将消息放入故障转储中,以便通过调用!dbgprint 分析“windbg.exe”中的转储来访问它们。

我总是一无所获。

0: kd> !dbgprint
DbgPrint buffer is empty.

参考转储消息示例:

DbgPrint("## %s : %u\n", __FUNCTION__, __LINE__);

DbgPrintEx(DPFLTR_IHVDRIVER_ID, DPFLTR_ERROR_LEVEL, "## %s : %u\n", __FUNCTION__, __LINE__);

请注意,运行驱动程序的 PC 与开发 PC 不同。我无法将 WinDbg 连接到“正在运行”的机器并实时观看。所以我试图在崩溃之前获取日志并获取一些变量的值。基本上我只能指望MEMORY.DMP 文件。

如果有其他方法可以存档相同/相似的日志记录,我将不胜感激。

谢谢。

【问题讨论】:

    标签: windows driver device-driver wdk bsod


    【解决方案1】:

    不确定是否始终保留 DbgPrint 缓冲区,我认为您应该使用 WPPIFR(飞行跟踪记录器),即使使用转储也始终记录您的跟踪。

    【讨论】:

    • 因为我得到 WPP 不是一个选项,因为它需要在删除机器上运行“TraceLog”。另一方面,在TraceEvents(...) 的帮助下,IFR 给出了我所要求的,在崩溃转储中记录消息。谢谢。
    猜你喜欢
    • 1970-01-01
    • 2016-05-30
    • 1970-01-01
    • 1970-01-01
    • 2016-01-08
    • 1970-01-01
    • 2017-05-05
    • 1970-01-01
    • 2021-11-19
    相关资源
    最近更新 更多