Visual Studio .NET 原生代码调试高级技巧与汇编语言入门
1. 原生应用高级断点
原生代码开发虽更复杂,但能带来极致的控制和速度。在 Visual Studio .NET 中调试原生应用,高级断点是重要工具。
-高级断点语法
- 高级断点语法由上下文部分和位置、表达式或变量部分组成。上下文部分为调试器提供断点的明确位置,格式为{[function],[source file],[binary module]}。例如,要在TEST.CPP文件的第 20 行设置断点,在 Visual Studio .NET 中可输入{,TEST.CPP,}@20。
- 此语法能解决特定调试问题。如CheckMyMem函数在A.DLL和B.DLL中静态链接,若仅想在B.DLL中触发断点,可手动输入{,CHECKMYMEM.CPP,B.DLL}@27。
-系统或导出函数断点
- 设置导出函数断点可解决难题,如追踪内存损坏问题。但设置时需提供函数的上下文信息,且函数名取决于 DLL 符号是否加载。
- 以KERNEL32.DLL的LoadLibrary函数为例,若符号未加载,使用{,,KERNEL32.DLL}LoadLibraryA