【问题标题】:Alternatives to DebugView?DebugView 的替代品?
【发布时间】:2011-10-19 19:19:11
【问题描述】:

我在测试期间使用Sysinternals DebugView 进行调试/记录,非常好。但是我在想是否有更高级的工具。

我正在寻找的功能:

  • 实时过滤器 - 记录所有内容(嗯,所有“有趣的”),通过过滤更改视图
  • 按进程名称过滤
  • 通过过滤将日志拆分到不同的视图
  • 解析消息
  • 超越 OutputDebugString,从非 Windows 设备接收 TCP/UDP 消息
  • 脚本(?)

我喜欢 DebugView 的功能:

  • 过滤
  • 颜色
  • 良好的时间戳
  • 实时取景

有什么工具可以做到这一点?还是其他可用的技术?

我使用的是 Windows XP/7,主要使用 Delphi 和 Python 进行编程。

【问题讨论】:

  • DebugView 不提供完整的源代码吗?然后,您可以推出自己的版本。
  • @TheBlastOne 源代码好像没有了。

标签: debugging logging sysinternals debugview


【解决方案1】:

我还没有遇到过任何接近 DebugView 的功能,最好的亚军是 ollydbg 和 WinDbg 等调试器提供的日志服务。

我实际上开始使用您描述的大多数功能(以及其他一些功能,例如泄漏跟踪)制作自己的工具,但是我没有比工作的准系统更进一步(我在 Google Code 上找到了源代码,但我不知道它是否仍然存在)。如果您确实走自己的路线,使用.NET 之类的东西结合thisthis,应该使它变得非常简单、快速和强大(您还可能会发现this 感兴趣)。


事实上,似乎有人已经制作了a .NET based tool,它可以很容易地适应任何人的需求......

【讨论】:

    【解决方案2】:

    对于 Delphi,至少有 Raize Software 的CodeSite。它有很多日志助手,也使它更易于使用。最新版本的 Delphi (Delphi XE) 包含一个受限/轻量版。

    【讨论】:

      【解决方案3】:

      随时尝试SmartInspect。它包含您列出的内容,并且我们有用于 Delphi、.NET 和 Java 的库。我们的一位客户也有一个不支持的Python port。它还具有高分辨率时间戳和其他工具所没有的其他独特功能,例如日志文件加密、快速命名管道日志协议(除了 TCP 日志记录)、积压队列等。


      (来源:gurock.com

      【讨论】:

      • 是否可以在没有库的情况下通过 UDP 通信使用不受支持的平台?
      • @Harriv 您可以为此编写一个简单的 UDP 服务器,然后使用其中一个 SmartInspect 库来转发请求。这将是完成此任务的最简单方法。
      【解决方案4】:

      我最近在寻找完全相同的东西并遇到了Trace Spy。它最终对我不起作用,我现在仍在使用 DebugView。但是,我在此过程中学到的一个技巧是可以设置 Windows 7 快捷方式,以便它在管理员模式下自动运行 DebugView:

      这允许您访问更多被 UAC 禁用的功能,例如:

      • 捕获全局 Win32
      • 捕获内核

      我同意其他一些关于 DebugView 是一个好工具的帖子。我只是认为获得与 Windows 7 兼容的更新会很好。甚至是安装程序!

      【讨论】:

      • TraceSpy 有什么不适合您的?您是否在 codeplex 讨论选项卡上发表过评论?
      • Simon,老实说,我并没有花太多时间尝试让 TraceSpy 工作。我现在有 DebugView 工作,但如果我最终再次尝试 TraceSpy 并继续遇到问题,这是一个在 CodePlex 上发布内容的好建议。
      【解决方案5】:

      对于想要“自己动手”的人:

      我创建了一个名为 Buggazer (https://github.com/janwilmans/buggazer) 的 googlecode 项目 这是目前正在开发的.net 实现。欢迎任何人加入。

      捕获的OutputDebugString 和显示部分已经完成,相比Debugview 速度更快,资源消耗更少。使其有用的主要缺失功能是过滤。

      DBWinListener 类是捕获 Win32 和 Win32Global 输出的 OutputDebugString 输出的参考实现。已经在WinXp和Win7/8上进行了测试。

      该项目包含多个压缩内存缓冲区的参考实现,请参阅 SnappyCompressor 类(包装原生 win32 Google Snappy 库)或原生 .net GZipStorage 类。

      还有一个 UTF8String 实现,用于以 UTF8 格式存储简单文本(用于在 UTF16 明确无用的情况下节省内存。)

      UTF8Storage 在容器类中对此进行抽象。

      工作:

      • 实时过滤器
      • 多个视图
      • 着色
      • 任何贡献或请求的内容

      【讨论】:

      • Google Code has been shut down,现在打开链接会导致 “404。这是一个错误。” 它是否已移至其他地方,例如 GitHub?也许你应该更新你的答案。
      【解决方案6】:

      最近,buggazer 已停止使用,取而代之的是名为 Debugview++ 的原生 c++ 实现。见https://github.com/CobaltFusion/DebugViewPP

      它目前已经具备原始问题中要求的大部分功能。

      【讨论】:

      • 这看起来很棒。添加 TCP/UDP 日志会不会很困难?
      • 它与 sysinternals 的原始 debugview-agent 兼容,因此可以进行“远程调试”。同样对于 UDP,已经实现了一个特定的功能。看看吧:)
      • 您回复了 2 年以上的评论,UDP 已实现,我正在使用它 :)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-08
      • 2012-01-25
      • 2015-08-05
      • 2011-01-01
      • 2011-10-24
      • 2011-05-31
      相关资源
      最近更新 更多