在VC中使用Debug

这个非常有用,特别是对那些刚刚毕业的自认为很厉害的的新手!

  1. 选定Debug编译选项 Build -> Set Active Configuration -> Win32 Debug

或者在Build工具栏上的ListBox中选择Debug

Debug定义了_DEBUG宏,而Release定义了NDEBUG宏。

  1. 先按F12编译Browse信息

这样编译后可以查到变量定义。

  1. 执行Debug

F5(注意,如果按CtrlF5 Run,起不到Debug的作用)。

Debug时一定要把Debug工具栏拉出来,方便调试。

  1. Breakpoints(F9) Alt+F9可以对所有的断点进行编辑。

对指令地址(EIP)指定断点

EIP的值为指定值时中断。如下图:是对SetWindowLong的地址进行设置的(注意:一定要在前面加0x)。

对内存地址设置断点

当指定内存地址发生变化时中断(在运行时设置才管用)。

  1. Show Next Statement(Alt+Num *) 显示当前指令所处的代码位置
  2. Step Over(F10) 单步追踪,遇到Call语句不进入
  3. Step Into(F11) 单步追踪,遇到Call语句进入
  4. Step Out(Shift+F11) 跳出当前函数调用
  5. Run to Cursor(Ctrl+F10) 运行到光标所处位置
  6. Memory Leaks 内存泄漏。要想检查到memory leaks,必须包含<afx.h>头文件(实际上是#pragma comment(lib, "mfc42ud.lib")在起作用)。

注意:内存泄漏是一个十分严重的问题,尤其对于需要长时间运行的程序(进程长时间保留在内存中)更是如此。有一个重要的事实是,当进程正常退出时,操作系统负责清空该进程的所有内存。

  1. QuickWatch(Shift+F9) 可以更改变量运行时的值。
  2. Watch窗口 输入"err,hr"可以动态查看GetLastError信息。可以输入寄存器。

(long *)ESP可以查看堆栈内容。

  1. Variables窗口 当前函数的局部变量
  2. Registers窗口 EIPESPECX
  3. Memory窗口 对变量可以拖放。Options->Debug中可以设置
  4. Call Stack窗口
  5. Disassembly窗口

Set next statement 跳过某些语句(有时用于Hack

Goto Source

Ctrl+G

%system%目录下创建de.bat文件,内容如下:

dumpbin /eXPorts %1>a.txt

a.txt

dll输出函数进行查看

Apply Code Changes(Alt+F10)

当处于Debugging状态时,如果更改了代码,可以执行此命令,可以使得重新编译后再运行到当前状态。

  1. Debug->Modules窗口
  2. Profile(Build菜单下) 要先设置Project -> Settings -> Link -> Enable profiling
  3. ASSERTVERIFY
  4. TRACE Debug状态下输出,同时要求Enable tracing开启。
  5. AfxMessageBox
  6. cout,printf 对控制台程序进行输出测试
  7. OutputDebugString DebugRelease状态下都可以输出。
  8. DebugBreak_asm{int 3} 强制中断
  9. 如何对Release版本进行Debug 进行如下设置,然后就可以进行Debug了。

Settings -> C/C++ -> Category(General) -> Debug infoProgram Database

Settings -> Link -> Category(General) -> Generate debug infotrue

  1. 输出汇编文件 Project Settings中如下设置:

则会产生相应的汇编文件 (*.asm / *.cod)

  1. Win32程序中输出字符串到控制台 if (AllocConsole())

{

HANDLE hConsole;

hConsole = GetStdHandle(STD_OUTPUT_HANDLE);

if (hConsole)

{

Dword dwWritten;

char sOut[]="This is a test string./n";

WriteConsole(hConsole, sOut, strlen(sOut), &dwWritten, NULL);

}

}

//FreeConsole();

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要在Win10上使用VC6.进行调试,您需要按照以下步骤操作: 1. 打开VC6.,打开您要调试的项目。 2. 在“生成”菜单选择“配置管理器”。 3. 在“配置管理器”对话框,选择“Active(Debug)”配置。 4. 点击“确定”按钮,关闭“配置管理器”对话框。 5. 在“调试”菜单选择“开始调试”或按下F5键。 6. 在弹出的“选择调试器”对话框,选择“本地Windows调试器”。 7. 点击“确定”按钮,开始调试您的程序。 请注意,VC6.已经过时,可能无法在最新的Windows版本上正常工作。建议您使用更现代的开发工具,如Visual Studio 2019。 ### 回答2: 在Win10的VC6.0使用Debug模式需要进行一些设置和操作,以下步骤可以帮助您进行Debug: 1. 在VC6.0选择“菜单栏- Tools(工具)”- “Options(选项)”。 2. 在弹出的窗口,选择“Debug(调试)”选项卡。 3. 在左边列表选择“General(常规)”选项。 4. 在右边列表选择“Enable Debugging(启用调试)”。 5. 单击“OK”按钮,关闭窗口。 6. 打开项目,在菜单栏选择“Project(项目)”- “Settings(设置)”。 7. 在弹出的窗口,选择“Debug(调试)”选项卡。 8. 在左边列表选择“Debug(调试)”目录。 9. 在右边列表选择“Generate Debug Info(生成调试信息)”。 10. 单击“OK”按钮,关闭窗口。 11. 在需要Debug的地方插入断点,可通过点击代码行左侧的空白区域或使用快捷键F9实现。 12. 编译整个项目,选择“Debug”配置并启动程序。 13. 程序运行到断点处,按F11进入函数内部,F10跳过函数调用。 14. 在断点调试窗口可以查看变量的值,步进和断点的控制。 15. Debug结束后,可通过选择“Project”- “Clean”清除编译后的文件和清除其他资源。 以上是Win10的VC6.0 Debug使用方法,需要注意的是,可能会遇到兼容性问题,建议使用更现代的IDE进行编程和Debug。 ### 回答3: VC6.0是一款十分实用的开发工具,用于Windows操作系统的编程与开发。想要在Win10上使用VC6.0的debug功能,需要先了解如何设置相关环境。 首先,需要在VC6.0设置编译选项。打开“Project”菜单,选择“Settings”,在“Link”选项卡勾选“Generate Debug Info”选项;在“C/C++”选项卡勾选“Debug Information Format”并设置为“Program Database”;在“Optimization”选项卡关闭所有优化选项。 其次,需要在Win10设置符号文件路径。打开“系统属性”窗口,在“高级”选项卡选择“环境变量”,在系统变量设置“_NT_SYMBOL_PATH”变量为“srv*c:\symbols*https://msdl.microsoft.com/download/symbols”。 接着,在启动程序时需要选“调试”配置。打开“菜单栏”的“Debug”按钮,在“选择Debug”菜单选择“应用程序”,即可启动程序进行debug调试。 在程序运行过程,可以使用Visual Studio的调试功能。比如,在代码设置好断点,程序运行到该处时就会暂停,可以查看变量值、运行顺序等,来排除程序的bug。 总之,Win10的VC6.0 debug调试需要在编译选项、符号文件路径和程序启动时进行设置,同时结合Visual Studio的调试功能,从而更加方便地进行程序调试和debug
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值