- Visual C++2013从入门到精通(视频教学版)
- 朱文伟
- 557字
- 2025-02-23 19:54:09
2.15 调试输出
2.15.1 调试程序常用快捷键
调试最重要的就是单步调试和调试信息的输出。在Visual C++开发中调试有下面几个重要的快捷键:
● F9:在当前光标所在的行下断点,如果当前行已经有断点,则取消断点。
● F5:调试状态运行程序,程序执行到有断点的地方会停下来。
● F10:执行下一句话(不进入函数)。
● F11:执行(进入函数),和F10的区别是,如果当前执行语句是函数调用,则会进入函数里面。
● CTRL+F10:运行到光标所在行。
2.15.2 利用Win32 API进行调试输出
API函数OutputDebugString可以输出调试信息。输出的结果可以在Visual C++的集成环境的输出窗口中看到,也可以使用工具DbgView.exe捕捉结果。函数声明如下:
void OutputDebugString(LPCTSTR lpOutputString);
其中参数lpOutputString指向一个NULL结尾的字符串,里面包含了要显示的信息。
因为OutputDebugString的参数是字符串,而我们在实际使用过程中希望能像printf一样支持变参。可以用下面的一个自定义函数实现这个效果:
bool MyDbgstr(LPCSTR lpszFormat, ...) { va_list args; int nBuf; TCHAR szBuffer[512]; va_start(args, lpszFormat); nBuf = _vsnprintf(szBuffer, sizeof(szBuffer)*sizeof(TCHAR), lpszFormat,args); Assert(nBuf > 0); OutputDebugString(szBuffer); va_end(args); }
2.15.3 在MFC程序调试输出
MFC程序在调试的时候,可以用宏TRACE输出调试信息。宏TRACE只有在调试状态下才有所输出,它既可以输出一个字符串,也可以输出带有参数的字符串。比如:
int x = 1; int y = 16; float z = 32.0; TRACE( "This is a TRACE statement/n" ); TRACE( "The value of x is %d/n", x ); TRACE( "x = %d and y = %d/n", x, y ); TRACE( "x = %d and y = %x and z = %f/n", x, y, z );
2.15.4 可视化查看变量的值
在调试状态的时候,IDE会自动显示一个“监视”窗口,里面可以添加变量,查看变量的值,如图2-110所示。

图2-110