这里我们将介绍的是Visual Studio调试中断点的设置,希望能对大家了解Visual Studio下的调试工作有所帮助。
本文将解说ViVisual Studio调试中止点的设置,首要咱们会来解说调试的界说,以及调试的重要性。关于断点,咱们也会从CPU的构架开端解说。51CTO修改引荐《Visual Studio 2010运用与开发详解》
我从前问过许多人,你一般是怎样调试你的程序的?
F9, F5, F11, F……
有许多书和文章都是介绍怎样运用Visual Studio编写WinForm啦,、ASP.NET之类的程序;知道怎么编写当然重要,可是我觉得程序员或许只会花费30%的时刻在编写代码上,剩余的大部分时刻都是在调试程序。在网上看到许多人介绍Windbg的用法,可是没有看到几篇解说运用Visual Studio调试的文章。Windbg当然强壮,可是问题是它的学习曲线太陡了,而且许多调试并不需要运用Windbg来调试(当然啦,并不是指我不会Windbg调试啦—这是今后的调试系列文章将要讲的),为什么不运用咱们最了解的Visual Studio来进行调试呢?
调试嘛,无非便是要看看程序在运转时分,内部的状况,例如一些变量的值是多少,看一看程序调用的途径啦之类的。当然最直接的办法便是直接中止程序的履行,用调试器去检查一下程序的状况嘛。所以F9, F5, F10, F11……
那么咱们就来说说什么是断点,断点是什么?
不是F9 ,也不是那个小红球,在Intel系列的CPU(包含AMD出产的CPU)里边,它其实是一个特别的指令—INT 3。CPU在履行程序的指令集的时分,只需碰到这个指令,就会中止程序的履行(当然啦,CPU会告诉操作系统,然后……然后……然后……,断点的完成机制我会在今后的文章里边解说,现在咱们就只需知道那个INT 3指令会中止程序的履行好吗?)。
当然啦,咱们需要用现实来证明我上面的话,因而把下面的程序编译而且履行一下,点“Yes”,点“Break”,对对对,程序中止了,我相信你能够看见的:
- #include
- voidmain()
- {
- printf("Beforebreakpoint"n");
- __asm
- {
- int3
- }
- printf("Beforebreakpoint"n");
- }
编译办法:
1. 在开端菜单中翻开Visual Studio 2008[2005] Command Prompt(Visual Studio 2008[2005]指令行)。
2. 进入保存上面 C源代码(int3.c)的文件夹的途径。
3. 履行编译指令(由于我的机器是Windows 7 RC + Visual Studio 2008 + x64 CPU,直接编译有一点问题,假如你的机器不是我上面的装备,能够测验履行cl /Zi int3.c)
- cl/Zi/cint3.c
4. 履行链接指令(假如你直接履行了指令cl /Zi int3.c的话就能够越过这一步)。
- link/libpath:"C:"ProgramFiles"MicrosoftSDKs"Windows"v6.0A"Lib"int3.obj
5. 运转输出的int3.exe。
这时你应该会看到Visual Studio弹出来,然后在源代码行的int 3上面中止,阐明咱们现已成功地让CPU中止int3.exe程序 的履行了。
提示:假如你履行int3.exe的时分,没有发现Visual Studio窗口弹出来的话,那么请点击Visual Studio菜单项里边的“Tools(东西)”—“Options(选项)”,接着在“Options(选项)”窗口中挑选 “Debugging(调试)”—“Just-In-Time(即时调试)”,然后勾选“Native(原生程序)”选项。如下图所示:
“综上所述,断点是
由int 3这个指令(当然是在intel系列的CPU上面)引申出来有哪些函数呢:
言语/东西 |
称号 |
描绘 |
C++ |
DebugBreak |
在C++代码中硬编码一个断点。 |
C# |
Debugger.Break |
在.NET代码中硬编码一个断点 |
Visual Studio |
断点 |
设置一个断点 |
原文标题:Visual Studio调试之断点根底篇
链接:http://www.cnblogs.com/killmyday/archive/2009/09/26/1574311.html
【修改引荐】
- Visual Studio 2010并行编程及调试确诊功用详解
- 图解VS 2010与.NET 4.0多显示器支撑
- VS 2010和.NET 4的多定向支撑
- 图解VS 2010和.NET 4开始项目模板
- VS 2010和.NET 4***步:Web.config文件