简单来说,有两种方式,一种是源码debug,即分析源码来找出bug位置,一般使用printf()打印出程序执行每一步的信息,一种是可执行文件debug,需要使用调试器来进行。
1、源码debug
类似于下面的源码,主要通过程序执行时输出的信息,来定位bug出现的位置,然后再修改源码。
#include
void f() { ; }
int main()
{
#ifdef _DEBUG
printf("start main function!\n");
#endif
void f();
#ifdef _DEBUG
printf("leave main function !\n");
#endif
return 0;
}
2、可执行文件调试,windows平台常用的就是vs/vc自带的调试,另外一个就是微软自家开发的调试器windbg。Linux平台以gdb为常用。
IDE自带的调试器以VC6.0为例,编写完代码后,按快截键盘F11,即可进入调试,此时右键,选择“go to disassembly"即可查看到程序的反汇编代码 。一般这种情况,主要是为了对C语言进行反汇编学习。