1. 什么是DebugView?
它是Sysinternals公司的系列调试工具。可以捕获程序中由TRACE()和OutputDebugString输出的信息。
2. C++需要完成哪些工作呢?
将打印的信息用OutputDebugString输出,示例:
- #include "stdio.h"
- using namespace std;
-
- #define UseDebugView
- #ifdef UseDebugView
- #include "windows.h"
- char g_Debug[256];
- #endif
-
- int main()
- {
- int sum = 0;
- #ifdef UseDebugView
- sprintf_s(g_Debug, 256, "FJL---【循环求和】[In]\n");
- OutputDebugStringA(g_Debug);
- #endif
- for (int i = 0; i < 5;i++)
- {
- sum += i;
-
- }
- #ifdef UseDebugView
- sprintf_s(g_Debug, 256, "FJL--【循环求和】[Out]\n");
- OutputDebugStringA(g_Debug);
- #endif
- return 0;
- }
如果我们能在debugview看到输出的信息,是不是一定程度就可以调程序了呢?!
3. DebugView需要完成的工作?
首先,设定DebugView的View条件,如下所示:
然后,在Capture菜单中打开capture win32,运行程序,观察DebugView界面显示字符串:
总结:
C++设置我们期望的执行位置提示字符串;DebugView观察是否按照预期将其输出,根据输出的信息,便可以推断出代码问题所在。
调试工具不是万能的,只是一种辅助!!!