【问题标题】:WinDbg outputs characters to console nonstopWinDbg 不间断地向控制台输出字符
【发布时间】:2008-10-03 13:44:43
【问题描述】:

我正在开发一个 POS 应用程序,目前在大约 200 个地点使用 .Net 2.0、WCF 和 SyncFusion 组件作为 GUI。

两天前,我们在一个新位置安装了该应用程序,但该应用程序一直在遭受突然终止。

应用程序有一个正在运行的事件和异常日志,所以如果它发生了什么事,日志中总会有一些东西。在这种情况下,日志被简单地切断。我们在其他地方也遇到过类似的情况,但这种情况极为罕见,而且不会超过一两次,因此我们无法捕获调试转储。

该位置的计算机的硬件设置略有不同,包括 LPT 输出上的分离器,用于打印到 POS 打印机和在视频监视器上显示输出。

不过,在这个位置,它大约每 1.5 小时发生一次。我尝试打开 WinDbg 并附加到进程,但奇怪的是,在有调试输出的区域,我看到了我的应用程序生成的跟踪消息,但还有一个不间断的字符流,具体来说,“ b0" 重复。

我的问题是我不明白“b0”是从哪里来的,它是什么意思。我怀疑它可能是分离器,但我要到星期天才能测试它。

希望有人知道如何解决这个问题。

【问题讨论】:

    标签: c# .net windbg


    【解决方案1】:

    听起来您在应用程序中遇到了一个非托管异常,该异常可能会绕过您尝试执行的任何日志记录。

    在这种情况下,我设置 cdb 以在崩溃时生成完整的 MiniDump,然后运行带有 SOS 扩展的 WinDbg 来分析转储。

    来自 MSDN 博客 (http://blogs.msdn.com/pfedev/):

    从 Debugging Tools for Windows 目录运行此命令:

    C:\debuggers> cdb -iaec "-c \".dump /u /ma c:\dumps\av.dmp;q\""
    

    这会将 CDB 调试器配置为 AeDebug 注册表项崩溃的默认处理程序。您可以通过浏览注册表项来验证设置:

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug
    

    并看到这两个值:

    值名称:自动值数据:1

    值名称:调试器值数据:“c:\debuggers\cdb.exe” -p %ld -e %ld -g -c “.dump /ma /uc:\av.dmp;q”

    【讨论】:

      猜你喜欢
      • 2019-03-11
      • 2013-04-28
      • 1970-01-01
      • 2011-05-16
      • 1970-01-01
      • 1970-01-01
      • 2019-12-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多