vs2005 调试命令摘要举例
调试命令的总结,挺有用的,所以转过来了。调试的时候,可以在VS2005的Command Window中输入调用。
这是我所转的原帖的地址:http://www.cppblog.com/chefZ/archive/2008/12/05/68612.html
以 Unicode 形式列出内存
>du 0x056769d0 <=== du 以 Unicode 形式列出内存 0x056769d0 内存以起始位址
原稿: http://msdn.microsoft.com/en-us/library/c338aexd.aspx
[摘]“命令”窗口用于直接在 Visual Studio 集成开发环境 (IDE) 中执行命令或别名。可以执行菜单命令和不在任何菜单上显示的命令。若要显示“命令”窗口,请从“视图”菜单中选择“其他窗口”,再选择“命令窗口”。
以下是包含可在 Visual Studio 中使用的预定义命令别名的列表。
命令名 |
别名 |
完整名称 |
打印 |
? |
Debug.Print |
快速监视 |
?? |
Debug.Quickwatch |
添加新项目 |
AddProj |
File.AddNewProject |
别名 |
Alias |
Tools.Alias |
“自动”窗口 |
Autos |
调试.自动窗口 |
“断点”窗口 |
bl |
调试.断点 |
切换断点 |
bp |
Debug.ToggleBreakPoint |
“调用堆栈”窗口 |
CallStack |
调试.调用堆栈 |
清除书签 |
ClearBook |
编辑.清除书签 |
关闭 |
Close |
File.Close |
关闭所有文档 |
CloseAll |
Window.CloseAllDocuments |
全部清除 |
cls |
Edit.ClearAll |
“命令”模式 |
cmd |
视图.命令窗口 |
查看代码 |
code |
视图.查看代码 |
列出内存 |
d |
Debug.ListMemory |
以 ANSI 形式列出内存 |
da |
Debug.ListMemory /Ansi |
列出内存(单字节格式) |
db |
Debug.ListMemory /Format:OneByte |
以 ANSI 形式列出内存(四字节格式) |
dc |
Debug.ListMemory /Format:FourBytes /Ansi |
列出内存(四字节格式) |
dd |
Debug.ListMemory /Format:FourBytes |
删除到行首 |
DelBOL |
Edit.DeleteToBOL |
删除到行尾 |
DelEOL |
Edit.DeleteToEOL |
删除水平空白 |
DelHSp |
编辑.删除水平空白 |
视图设计器 |
designer |
视图.视图设计器 |
列出内存(浮点格式) |
df |
Debug.ListMemory /Format:Float |
“反汇编”窗口 |
disasm |
调试.反汇编 |
列出内存(八字节格式) |
dq |
Debug.ListMemory /Format:EightBytes |
以 Unicode 形式列出内存 |
du |
Debug.ListMemory /Unicode |
计算语句 |
eval |
Debug.EvaluateStatement |
退出 |
Exit |
文件.退出 |
格式化选定内容 |
format |
编辑.格式化选定内容 |
全屏 |
FullScreen |
视图.全屏 |
开始 |
g |
调试.启动 |
转到 |
GotoLn |
编辑.转到 |
转到大括号 |
GotoBrace |
编辑.转到大括号 |
F1帮助 |
Help |
帮助.F1帮助 |
“即时”模式 |
immed |
Tools.ImmediateMode |
将文件作为文本插入 |
InsertFile |
Edit.InsertFileAsText |
列出调用堆栈 |
kb |
Debug.ListCallStack |
转换为小写 |
Lcase |
编辑.转换为小写 |
剪切行 |
LineCut |
编辑.剪切行 |
删除行 |
LineDel |
编辑.删除行 |
列出成员 |
ListMembers |
编辑.列出成员 |
“局部变量”窗口 |
Locals |
调试.局部变量 |
日志命令窗口输出 |
Log |
Tools.LogCommandWindowOutput |
命令窗口标记模式 |
mark |
工具.命令窗口标记模式 |
“内存”窗口 |
Memory Memory1 |
调试.内存1 |
内存窗口 2 |
Memory2 |
调试.内存2 |
内存窗口 3 |
Memory3 |
调试.内存3 |
内存窗口 4 |
Memory4 |
调试.内存4 |
设置基数 |
n |
Debug.SetRadix |
显示Web浏览器 |
nav navigate |
View.ShowWebBrowser |
下一书签 |
NextBook |
编辑.下一书签 |
新建文件 |
nf |
文件.新建文件 |
新建项目 |
np NewProj |
文件.新建项目 |
打开文件 |
of Open |
文件.打开文件 |
打开项目 |
op |
File.OpenProject |
折叠到定义/停止大纲显示 |
OutlineDefs StopOutlining |
编辑.折叠到定义 |
逐过程 |
p |
调试.逐过程 |
参数信息 |
ParamInfo |
编辑.参数信息 |
跳出 |
pr |
调试.跳出 |
上一书签 |
PrevBook |
编辑.上一书签 |
打印文件 |
|
文件.打印 |
“属性”窗口 |
props |
视图.属性窗口 |
停止 |
q |
调试.停止调试 |
重复 |
redo |
编辑.重复 |
“寄存器”窗口 |
registers |
调试.寄存器 |
运行到光标处 |
rtc |
调试.运行到光标处 |
保存选定项 |
save |
文件.保存选定项 |
全部保存 |
SaveAll |
文件.全部保存 |
另存为 |
SaveAs |
File.SaveSelectedItemsAs |
“仅显示脚本”视图 |
ScriptOnly |
View.ShowScriptOnly |
外壳程序 |
shell |
Tools.Shell |
停止在文件中查找 |
StopFind |
Edit.FindInFiles /stop |
交换定位点 |
SwapAnchor |
编辑.交换定位点 |
逐语句 |
t |
调试.逐语句 |
制表符替换空格 |
tabify |
编辑.制表符替换空格 |
“任务列表”窗口 |
TaskList |
视图.任务列表 |
“线程”窗口 |
Threads |
调试.线程 |
水平平铺 |
TileH |
Window.TileHorizontally |
垂直平铺 |
TileV |
Window.TileVertically |
切换书签 |
ToggleBook |
编辑.切换书签 |
“工具箱”窗口 |
toolbox |
视图.工具箱 |
列出反汇编 |
u |
Debug.ListDisassembly |
转换为大写 |
Ucase |
编辑.转换为大写 |
取消 |
undo |
编辑.取消 |
空格替换制表符 |
Untabify |
编辑.空格替换制表符 |
“监视”窗口 |
Watch |
调试.监视N |
切换自动换行 |
WordWrap |
编辑.切换自动换行 |
列出线程 |
~ |
Debug.ListThreads |
若要检查变量 varA 的值,请使用“打印”命令:
>Debug.Print varA |
问号 (?) 是 Debug.Print 的别名,因此此命令还可以写为:
>? varA |
此命令的这两种版本都将返回变量 varA 的值。
输入命令
大于号 (>) 作为新行提示符出现在“命令”窗口的左边缘。使用向上键和向下键可滚动显示以前发出的命令。
任务 |
解决方案 |
示例 |
计算表达式的值。 |
表达式以问号 (?) 开始。 |
? myvar |
切换到“即时”窗口。 |
在窗口中输入 immed,不带大于号 (>)。 |
immed |
从“即时”窗口切换回“命令”窗口。 |
在窗口中输入 cmd。 |
>cmd |
以下快捷键可以帮助您在“命令”模式中定位。
操作 |
光标位置 |
键绑定 |
|||
循环通过以前输入的命令的列表。 |
输入行 |
向上键和向下键 |
|||
向上滚动窗口。 |
命令窗口内容 |
Ctrl+向上键 |
|||
向下滚动窗口。 |
命令窗口内容 |
向下键或 Ctrl+向下键 |
|||
通过滚动到前一个命令,突出显示该命令的全部或部分内容,然后按 Enter,可以将该命令的全部或部分内容复制到输入行中。 |
|||||
标记模式
在“命令”窗口中单击前面的任何行时,将自动切换到“标记”模式。这允许您像在任何文本编辑器中那样选择、编辑和复制以前命令的文本,并将其粘贴到当前行中。
等号 (=)
用于输入 EvaluateStatement 命令的窗口确定是将等号 (=) 解释为比较运算符还是赋值运算符。
在“命令”窗口中,将等号 (=) 解释为比较运算符。不能在“命令”窗口中使用赋值运算符。例如,如果变量 varA 和 varB 的值不相同,则命令
>Debug.EvaluateStatement(varA=varB) |
将返回 False 值。
与此相反,在“即时”窗口中,将等号 (=) 解释为赋值运算符。例如,命令
>Debug.EvaluateStatement(varA=varB) |
将为变量 varA 赋予变量 varB 的值。
参数、开关和值
有些 Visual Studio 命令具有必选的和可选的参数、开关和值。当处理这些命令时,应用某些规则。下面是一个用来阐明此术语的复杂命令示例。
Edit.ReplaceInFiles /case /pattern:regex var[1-3]+ oldpar |
在此示例中,
- Edit.ReplaceInFiles 是命令。
- /case 和 /pattern:regex 是开关(以斜杠 [/] 字符开头)
- regex 是 /pattern 开关的值;/case 开关没有值。
- var[1-3]+ 和 oldpar 是参数。
任何包含空格的命令、参数、开关或值都必须用双引号引起来。 |
在命令行上,开关和参数的位置可以随便互换,但外壳程序命令是个例外,它要求开关和参数按特定的顺序出现。
几乎命令所支持的每个开关都有两种格式:短格式(一个字符)和长格式。多个短格式开关可组合为一组。例如,/p /g /m 也可表示为 /pgm。
如果短格式开关组合为一组,而且给定一个值,则该值应用于每个开关。例如,/pgm:123 等同于 /p:123 /g:123 /m:123。如果该组中的任何开关都不接受值,则发生错误。
转义符
命令行中的插入符号 (^) 字符表示紧随其后的字符将按原义而不作为控制字符进行解释。这可用于在参数或开关值(开关名除外)中嵌入直引号 (")、空格、正斜杠、插入符号或其他任何字符。例如,
>Edit.Find ^^t /regex |
插入符号在引号内或引号外的作用相同。如果插入符号是该行的最后一个字符,则忽略不计。