zTrace 调试工具的优化与使用指南

zTrace 是一款用于显示调试信息的实用工具,它可以将信息显示在弹出窗口工具中,或者写入文本文件。该工具通过一个独立于当前应用程序的线程并行工作,非常适合在开发过程中检查程序是否正常运行。本文将介绍zTrace工具的优化过程,以及如何在Visual Studio中使用它来调试64位Unicode应用程序。

zTrace最初是为了调试作者的图形DLL工具而编写的,但它同样适用于任何32位或64位的EXE文件。当作者决定将WinLIFT和GDImage转换为C++时,zTrace成为了他的首选工具,因为他发现自己已经无法在没有它的情况下进行开发。

zTrace完全使用核心的平面API SDK过程风格,这是作者使用的不同语言之间的共同点,也是摆脱额外依赖的唯一方式。这个版本仅支持UNICODE,对于32位有一个ANSI版本,是用PowerBASIC编写的。

使用代码

使用zTrace非常简单,只需要调用一个API即可:

C++ zTrace(L"Wide String Information")

传递一个单一的Unicode(WCHAR)字符串,该字符串包含要在跟踪窗口中显示的信息。

洞察

跟踪窗口:

  • 作为参数传递的信息将显示在zTrace窗口的下一行。
  • 当调用zTrace时,跟踪窗口会自动打开,默认情况下,该窗口会打开在屏幕的左上角。
  • 当关闭正在调试的应用程序时,zTrace窗口会自动关闭。

zDebug.txt报告:

  • 与zTrace窗口的工作方式完全相同,只是信息被写入到文本文件中。
  • 当调用zDebug时,报告会自动创建,并保存在被调试应用程序的同一文件夹中。
  • zDebug可以单独使用,也可以与zTrace结合使用(当在弹出菜单中选中选项时)。
  • 当调试的应用程序意外关闭或应用程序的生命周期很短,没有足够的时间阅读zTrace窗口中写入的内容时,zDebug非常有用。
  • 每次启动新的zDebug会话时,都会创建一个新的zDebug.txt。

上下文弹出菜单

(在跟踪窗口上右键单击):

  • "使用水平滚动条",显示或隐藏水平滚动条。
  • "将选定内容发送到打印机",打印选定的行(或当没有选定任何内容时打印整个列表)。
  • "将选定内容复制到剪贴板",将选定的行(或当没有选定任何内容时的整个列表)复制到剪贴板。
  • "清除内容",清除跟踪窗口的内容。
  • "跟踪窗口置顶",将跟踪窗口置于所有其他窗口之上(包括其他应用程序的窗口)。
  • "创建zDebug.txt报告",在被调试应用程序的文件夹中创建zDebug.txt报告。
  • "保存窗口坐标",存储zTrace窗口的大小和位置,以便下次会话使用。

编译器设置

为了大幅度减少zTrace.dll的大小,必须使用提供的TCLib.lib,并设置属性页如下:

Include + Pragma #include #include " ..\TCLib\Strings.cpp" #pragma warning(disable: 4996) // remove Unsafe notifications #pragma warning(disable: 4312) // remove warning C4312: 'type cast': conversion from 'long' to 'HMENU' of greater size
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485