CCS中Debug与Release的区别

CCS中Debug与Release的区别
CCS中Debug与Release的区别

CCS中Debug与Release的区别

CCS中Debug与Release的区别

本人原创:https://www.360docs.net/doc/b68433101.html,/工程师笔记

在调试程序时,程序员一般使用Debug选项来编译链接,而在程序最终完成,准备发布时,

就使用Release选项编译链接,生成更精简更高效的可执行文件。

具体到TI的DSP开发环境CCS中来说,Debug和Release实质上是编译链接的具体配置(Build Options)的集合,

它们是两种不同的配置集合,是CCS为用户提供的默认集合,前者用于调试阶段,后者用于发布。

两者最主要的区别在于Project->Build Options..->Compiler选项卡->Generate Debug选项的配置不同,

Debug模式中选Full Symbolic Debug,而Release模式中选No Debug,这两种不同的选择下编译生成

的.out文件的大小相差在10倍以上。

而用户当然也可以建立自己的Build Options 集合,并且把这个集合命名为任何你想叫的名字,它与Debug

和Release拥有完全同样的地位。

欲建立自己的Build Options 集合,选择Project->Configurations...,如下图:

The difference between Debug and Release modes in CCS

by https://www.360docs.net/doc/b68433101.html,/%B9%A4%B3%CC%CA%A6%B1%CA%BC%C7

Programmers usually use Debug for debugging while Release for distributing when finished, the

latter is more simplified and efficient.

In the CCS programming environment, Debug and Release are sets of Build Options.

They are two different sets of Options, both are default sets for users, the former for debugging while the latter for distributing.

The main difference between them lies in :Project->Build Options..->Compiler ->Generate Debug,

In Debug mode Full Symbolic Debug option is selected, whereas No Debug option is selected in Release mode.

The .out file is about 10 times bigger in Debug mode.

Of course you can build your own sets of Build Options, and name them whatever you want, who have equal status to Debug and Release.

If you want to build your own sets of Build Options , select Project->Configurations.. as shown below:

弹出如下窗口:

the window below will pop:

选择ADD,并建立自己的配置集合,命名为myConfig,完成后,在下拉菜单中就出现了三个选项:Debug,Release,myConfig,如下图所示:

choose ADD to build your build option, name it myConfig, for example. When finished, there will be 3 options in the drop-down menu--Debug,Release and myConfig, as shown below:

Qt 怎样设置应用程序图标以及release版本的主意事项

Qt 怎样设置应用程序图标以及release版本的主意事项 第一步,准备个ICO图标。 例如:myApp.ico 用任何的文本编辑器新建个文件 里面写上一行: IDI_ICON1 ICON DISCARDABLE "myApp.ico" 第二步,保存改名为myApp.rc并把它和你的图标myApp.ico一起放置到你的Qt工程的目录里面。 第三步,用文本编辑器打开你的Qt工程文件(如myApp.pro ),在里面的最后面新添一行: RC_FILE = myApp.rc 第四步,在程序中添加如下代码: //app是程序中唯一的QApplication对象 app.setWindowIcon(QIcon("myApp.ico")); 注意:如果你的myApp.rc和你的图标myApp.ico不是在你的Qt工程目录里面,那么最后一句的代码中请指明图标文件的路径。 2.release版本主意事项 (1)在没有安装Qt的电脑上运行编译的程序,会提示缺少一些库文件,比如mingwm10.dll,libgcc_s_dw2_1.dll,这时需要在自己的开发程序的电脑上收索这些dll文件(全盘收索吧,不知道路径的话) (2)可能不能正确显示背景图片。解决方法如下: 要显示自己加入qrc文件中的信息,需要把qt的一个文件包复制,跟release.exe放在一个文件夹中,这样在没有装qt的电脑就业能运行了。文件包的名字叫imageformats。 给QT程序的EXE添加图标 问:要想让Qt程序的Debug和Release版本的exe都有图标,总共分几步?

答:总共分三步,客官看好,千万别眨眼! 第一步:在项目文件夹目录下创建文件app.rc,把从网上down下来的叫做tubiao.ico的图标也Copy进来在app.rc里面写上这么一段话: IDI_ICON1 ICON DISCARDABLE "tubiao.ico" 第二步:打开Qt Creator,把这两个文件导入到项目里面 第三步:在项目的pro文件里面填上: RC_FILE+=app.rc 给QT程序添加一个漂亮的图标 【问题描述】如图1所示,直接编译的QT程序,没有漂亮的外观,如何给程序添加一个漂亮的图标呢?

实验一 DEBUG的使用

实验一 DEBUG的使用 实验目的: 1.学习使用DEBUG程序的各种命令。 2.掌握8088/86指令系统---算数指令。 3.掌握用DEBUG调试自编程序的方法。 4.掌握8088/8086 CPU寄存器的用途和存储器组织及它们之间的关系。 5.掌握内存操作数及寻址方法。 6.掌握汇编语言伪操作:BYTE PTR,WORD PTR。 内容及步骤: 一、DEBUG 命令使用: 1、敲 DEBUG 进入 DEBUG 环境,显示提示符 '_ '。 2、用命令 D100 10F 观察内存中的16进制码及屏幕右边的ASCII字符。 3、用命令 E100 30 31 32 …… 3F 将30H~3FH写入地址为100H开始的内存单元中, 再用D命令观察结果,看键入的16进制数是什么字符的ASCII码? 4、用命令 F100 10F 'A' 将'A'的ASCII码填入内存,用D命令查看结果。 5、用命令 F110 11F 41 将41H 填入内存,用D命令观察结果并比较。 6、用R 命令检查各寄存器内容,特别注意AX,BX,CX,DX,IP及标志位中ZF,CF和AF的内 容。 7、用R命令将AX,BX内容改写为1234H及5678H。 8、用H命令检查下列各组16进制数加减结果并和你的手算结果比较: (1)34H,22H (2)56H,78H (3)A5,79H (4)1284H,5678H (5)A758,347FH 二、8088常用指令练习 1、传送指令 1)用A命令在内存100H处键入下列内容: MOV AX,1234 MOV BX,5678 XCHG AX,BX MOV AH,34 MOV AL,56 MOV CX,75AB XCHG AX,CX 2)用U命令检查键入的程序,特别注意左边的机器码。 3)用T命令逐条运行这些指令,每运行一行检查并记录有关寄存器及IP的变化情况。并注意标志位有无变化。 2、加减法指令: 1)用A命令在内存200H处键入下列内容:

【微机原理】DEBUG命令详解

DUBUG命令详解 Debug:A(汇编) 直接将8086/8087/8088 记忆码合并到内存。 该命令从汇编语言语句创建可执行的机器码。所有数值都是十六进制格式,必须按一到四个字符输入这些数值。在引用的操作代码(操作码)前指定前缀记忆码。 a [address] 参数address指定键入汇编语言指令的位置。对address 使用十六进制值,并键入不以“h”字符结尾的每个值。如果不指定地址,a 将在它上次停止处开始汇编。有关将数据输入到指定字节中的信息,请单击“相关主题”列表中的Debug E(键入)。有关反汇编字节的信息,请单击“相关主题”列表中的Debug U(反汇编)。 说明使用记忆码 段的替代记忆码为cs:、ds:、es: 和ss:。远程返回的记忆码是retf。字符串处理的记忆码必须明确声明字符串大小。例如,使用movsw 可以移动16 位的字串,使用movsb 可以移动8 位字节串。 汇编跳转和调用汇编程序根据字节替换自动将短、近和远的跳转及调用汇编到目标地址。通过使用near 或far 前缀可以替代这样的跳转或调用,如下例所示: -a0100:0500 0100:0500 jmp 502 ; a 2-byte short jump 0100:0502 jmp near 505 ; a 3-byte near jump 0100:0505 jmp far 50a ; a 5-byte far jump 1

可以将near 前缀缩写为ne。 区分字和字节内存位置当某个操作数可以引用某个字内存位置或者字节内存位置时,必须用前缀word ptr 或者前缀byte ptr 指定数据类型。可接受的缩写分别是wo 和by。以下范例显示两种格式: dec wo [si] neg byte ptr [128] 指定操作数Debug 使用包括在中括号([ ]) 的操作数引用内存地址的习惯用法。这是因为另一方面Debug 不能区分立即操作数和内存地址的操作数。以下范例显示两种格式: mov ax,21 ; load AX with 21h mov ax,[21] ; load AX with the ; contents of ; memory location 21h 使用伪指令使用a 命令提供两个常用的伪指令:db 操作码,将字节值直接汇编到内存,dw 操作码,将字值直接汇编到内存。以下是两个伪指令的范例: db 1,2,3,4,"THIS IS AN EXAMPLE" db 'THIS IS A QUOTATION MARK:"' db "THIS IS A QUOTATION MARK:'" dw 1000,2000,3000,"BACH" 范例a 命令支持所有形式的间接注册命令,如下例所示: 2

VS中的一些应用Debug和Release区别

Debug和Release区别 VC下Debug和Release区别 最近写代码过程中,发现Debug 下运行正常,Release 下就会出现问题,百思不得其解,而Release 下又无法进行调试,于是只能采用printf方式逐步定位到问题所在处,才发现原来是给定的一个数组未初始化,导致后面处理异常。网上查找了些资料,在这罗列汇总下,做为备忘~ 一、Debug 和Release 的区别 Debug 通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序。Release 称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的,以便用户很好地使用。 Debug 和Release 的真正区别,在于一组编译选项。 Debug 版本 参数含义 /MDd /MLd 或/MTd 使用Debug runtime library(调试版本的运行时刻函数库) /Od 关闭优化开关 /D "_DEBUG" 相当于#define _DEBUG,打开编译调试代码开关(主要针对assert函数) /ZI 创建Edit and continue(编辑继续)数据库,这样在调试过程中如果修改了源代码不需重新编译 GZ 可以帮助捕获内存错误 Release 版本参数含义 /MD /ML 或/MT 使用发布版本的运行时刻函数库 /O1 或/O2 优化开关,使程序最小或最快 /D "NDEBUG" 关闭条件编译调试代码开关(即不编译assert函数) /GF 合并重复的字符串,并将字符串常量放到只读内存,防止被修改 Debug 和Release 并没有本质的界限,他们只是一组编译选项的集合,编译器只是按照预定的选项行动。

Debug使用说明

附录DEBUG调试程序的应用 1.直接启动DEBUG程序 如https://www.360docs.net/doc/b68433101.html,在C盘的根目录下,启动的方法是: C:\>DEBUG _ 这时屏幕上会出现“_”提示符,等待键入DEBUG命令。 2.启动DEBUG程序的同时装入被调试文件 命令格式如下: C:\>DEBUG [d:][PA TH]filename[.EXT] [d:][PATH]是被调试文件所在盘及其路径,filename是被调试文件的文件名,[.EXT]是被调试文件的扩展名。 例如:BCDSUM.EXE可执行文件在A盘,用DEBUG对其进行调试的操作命令如下。 C:\>DEBUG A:\BCDSUN.EXE↙ DOS在调用DEBUG程序后,再由DEBUG把被调试文件装入内存,当被调试文件的扩展名为COM时,装入偏移量为100H的位置,当扩展名为EXE时,装入偏移量为0的位置,并建立程序段前缀PSP,为CPU寄存器设置初始值。 3.退出DEBUG 在DEBUG命令提示符“_”下键入Q命令,即可结束DEBUG的运行,返回DOS操作系统。 4.在DEBUG环境下建立和汇编程序 在DEBUG环境下用户可以直接建立汇编语言源程序,并可以进行编辑修改,还可以进行汇编。 比如,在DEBUG下运行如下程序: MOV DL,33H ;字符3的ASCII码送DL MOV AH,2 ;使用DOS的2号功能调用 INT 21H ;进入功能调用,输出‘3’ INT 20H ;BIOS中断服务,程序正常结束。 该程序运行结果是在显示器上输出一个字符‘3’。如果要输出其它字符,请改变程序中‘33H’为相应字符的ASCII码。其中涉及DOS和BIOS功能调用。因为我们是在DOS的支持下运行汇编语言程序,所以一般情况下,不能轻易使用输入/输出指令直接通过端口输入/输出,而必须使用DOS内部提供的子程序完成输入/输出。 DOS功能调用就是为诸如此类的目的设置的。DOS功能调用要求在进入INT 21H调用前,首先将功能调用号送AH寄存器,并根据功能调用号准备初始数据。也就是说INT 21H 的2号功能调用是输出DL寄存器中的字符。INT 20H是BIOS中断服务,这一软中断用来正常结束程序。

常用Linux系统Debug命令

常用Linux系统Debug命令 常用Linux系统Debug命令 命令系统,是一种计算机代码控制系统。常用Linux系统Debug 命令有哪些呢?下面是相关的知识,欢迎阅读。 1、查看TCP连接状态 netstat-nat|awk'{print$6}'|sort|uniq-c|sort-rn netstat- n|awk'/^tcp/{++S[$NF]};END{for(ainS)printa,S[a]}' netstat- n|awk'/^tcp/{++state[$NF]};END{for(keyinstate)printkey,"",s tate[key]}' netstat- n|awk'/^tcp/{++arr[$NF]};END{for(kinarr)printk,"",arr[k]}' netstat-n|awk'/^tcp/{print$NF}'|sort|uniq-c|sort-rn netstat-ant|awk'{print$NF}'|grep-v'[a-z]'|sort|uniq-c netstat-nat|awk'{print$6}'|sort|uniq-c|sort-rn netstat- n|awk'/^tcp/{++S[$NF]};END{for(ainS)printa,S[a]}' netstat- n|awk'/^tcp/{++state[$NF]};END{for(keyinstate)printkey,"",s tate[key]}' netstat- n|awk'/^tcp/{++arr[$NF]};END{for(kinarr)printk,"",arr[k]}' netstat-n|awk'/^tcp/{print$NF}'|sort|uniq-c|sort-rn

如何把VS2008上编的debug、release程序在没装VS的xp机器上运行

如何把VS2008上编的debug、release程序在没装VS的xp机器上运 行 用VS2008 SP编写的MFC程序,拷贝到其他没装VS2008的机器上直接运行,肯定是不行的。即使选择静态链接MFC,有时候系统还是会提示“应用程序配置不正确”。这是因为程序中可能不止用到了9.0版本MFC,还可能有ATL、CRT、OPENMP等。在自己的机器上运行时,系统会到"C:\WINDOWS\WinSxS\"文件夹查找相应的库,这个文件夹里包含了所有安装过的版本的运行库和清单文件。如果只找9.0版本的库和清单文件,也可以到"C:\Program Files\Microsoft Visual Studio 9.0\VC\redist\x86"这个文件夹。 对于只用到Release库程序: 拷贝需要的库和清单文件到exe所在目录,修改程序的清单文件,再移植就可以运行了。修改的方法是:用Release方式编译链接程序,然后修改xxx.exe.intermediate.manifest,将其中name为Microsoft.VC90.CRT、Microsoft.VC90.MFC等的dependency块删掉,生成(不是重新生成!)项目,VS会把清单文件重新嵌入到程序中。这样,到了目标机器上,系统就不会按照清单文件到WinSxS文件夹去查找库(当它找不到时,就会提示“配置错误”。从“事件查看器”中,会看到加载失败的信息),而是到了该加载时才从工作目录查找。网上很多说法都提到了拷贝dll和manifest,但如果不修改程序中嵌入的manifest的话,拷贝了也是没用的。 另外一个不需要修改清单文件的办法,是下载Microsoft Visual C++ 2008 Redistributable Package,只有几兆,到目标机器上安装就可以了。这是vcredist_x86 for VS2008 的下载地址: https://www.360docs.net/doc/b68433101.html,/downloads/details.aspx?FamilyID=9b2da534-3e03-4391-8a4d-074b9f 2bc1bf&displaylang=en 这是vcredist_x86 for VS2008 SP1的下载地址: https://www.360docs.net/doc/b68433101.html,/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B 2AF5FC2&displaylang=en 两个安装程序的版本略有差别。 当然,如果只用到了9.0版的MFC,只要选择“在静态库中使用MFC”,就可以运行了。 对于用到Debug库程序: 如果你的程序用到了Debug版的运行库,那么上述库是不能解决问题的,因为它们都是Release版。可以到"C:\WINDOWS\WinSxS\",把用到的文件夹拷贝到目标机器的WinSxS中。不过我用的仍是修改清单文件的办法:从"C:\Program Files\Microsoft Visual Studio

DEBUG的使用方法

DEBUG程序的使用 一、在DOS的提示符下,可如下键入Debug启动调试程序: DEBUG [路径\文件名] [参数1] [参数2] Debug后可以不带文件名,仅运行Debug程序;需要时,再用N和L命令调入被调试程序。命令中可以带有被调试程序的文件名,则运行Debug的同时,还将指定的程序调入主存;参数1/2是被调试程序所需要的参数。 在Debug程序调入后,根据有无被调试程序及其类型相应设置寄存器组的内容,发出Debug的提示符“-”,此时就可用Debug命令来调试程序。 运行Debug程序时,如果不带被调试程序,则所有段寄存器值相等,都指向当前可用的主存段;除SP之外的通用寄存器都设置为0,而SP指示当前堆栈顶在这个段的尾部;IP=0100h;状态标志都是清0状态。 运行Debug程序时,如果带入的被调试程序扩展名不是.EXE,则BX.CX 包含被调试文件大小的字节数(BX为高16位),其他同不带被调试程序的情况。 运行Debug程序时,如果带入的被调试程序扩展名是.EXE,则需要重新定位。此时,CS : IP和SS : SP根据被调试程序确定,分别指向代码段和堆栈段。DS=ES指向当前可用的主存段,BX.CX包含被调试文件大小的字节数(BX为高16位),其他通用寄存器为0,状态标志都是清0状态。 二、DEBUG命令的格式 Debug的命令都是一个字母,后跟一个或多个参数:字母[参数] 命令的使用中注意: ①字母不分大小写; ②只使用16进制数,没有后缀字母; ③分隔符(空格或逗号)只在两个数值之间是必须的,命令和参数间可无分隔符; ④每个命令只有按了回车键后才有效,可以用Ctrl+Break中止命令的执行; ⑤命令如果不符合Debug的规则,则将以“error”提示,并用“^”指示错误位置。 许多命令的参数是主存逻辑地址,形式是“段基地址: 偏移地址”。其中,段基地址可以是段寄存器或数值;偏移地址是数值。如果不输入段地址,则采用默认值,可以是缺省段寄存器值。如果没有提供偏移地址,则通常就是当前偏移地址。 对主存操作的命令还支持地址范围这种参数,它的形式是:“开始地址结束地址”(结束地址不能具有段地址),或者是:“开始地址L字节长度”。 三、DEBUG子命令 1、显示命令D D(Dump)命令显示主存单元的内容,它的格式如下(注意分号后的部分用于解释命令功能,不是命令本身): D [地址];显示当前或指定开始地址的主存内容 D [范围];显示指定范围的主存内容 例如,显示当前(接着上一个D命令显示的最后一个地址)主存内容: 左边部分是主存逻辑地址,中间是连续16个字节的主存内容(16进制数,以字节为单位),右边部分是这16个字节内容的ASCII字符显示,不可显示字符用点“.”表示。一个D命令仅显示“8行×16个字节”(80列显示模式)内容。 再如: -d 100 ;显示数据段100h开始的主存单元

汇编语言调试DEBUG命令详解

汇编语言调试DEBUG命令详解 1、显示命令D ① D [地址] ② D [范围] 如不指定范围,一次显示8行×16个字节。 -D ;默认段寄存器为DS,当前偏移地址 -D DS:100 / -D CS:200 -D 200:100 -D 200;200为偏移地址,默认段寄存器DS -D DS:100 110/ -D 100 L 10 2.修改命令E ① E 地址;从指定地址开始,修改(或连续修改)存储单元内容。DEBUG首先显示指定单元内容,如要修改,可输入新数据;空格键显示下一个单元内容并可修改,减号键显示上一个单元内容并可修改;如不修改,可直接按空格键或减号键;回车键结束命令。 ② E 地址数据表;从指定的地址开始用数据表给定的数据修改存储单元。 -E DS:100 F3 ‘AB’ 8D。 3.添充命令F F 范围数据表; 将数据表写入指定范围的存储单元;数据个数多,忽略多出的数据,个数少,则重复使用数据表。 -F DS:0 L5 01,02,03,04,05 -F DS:0 L5 01 02 03 04 05(空格分隔) -F DS:0 L5 FF ;5个字节重复使用FF 4.显示修改寄存器命令R R;★显示所有寄存器和标志位状态; ★显示当前CS:IP指向的指令。 显示标志时使用的符号: 标志标志=1 标志=0 OF OV NV DF DN UP IF EI DI SF NG PL ZF ZR NZ AF AC NA PF PE PO CF CY NC

5.汇编命令A A [地址];从指定的地址开始输入符号指令;如省略地址,则接着上一个A命令的最后一个单元开始;若第一次使用A命令省略地址,则从当前CS:IP 开始(通常是CS:100)。 注释:①在DEBUG下编写简单程序即使用A命令。 ②每条指令后要按回车。 ③不输入指令按回车,或按Ctrl+C结束汇编。 ④支持所有8086符号硬指令,伪指令只支持DB、DW,不支持各类符号名。 6.反汇编命令U ① U [地址];从指定地址开始反汇编32个字节的机器指令;省略地址时,则接着上一个U命令的最后一个单元开始;若第一次使用U命令省略地址,则从当前CS:IP开始(通常是CS:100)。 ② U 范围;对指定范围的单元进行反汇编。 -U -U100 -U100L10 7.运行程序命令G ① G;从CS:IP指向的指令开始执行程序,直到程序结束或遇到INT 3。 ② G=地址;从指定地址开始执行程序,直到程序结束或遇到INT 3。 ③ G 断点1[,断点2,…断点10];从CS:IP指向的指令开始执行程序,直到遇到断点。 ④G=地址断点1[,断点2,…断点10] -G ;从CS:IP指向的指令开始执行程序。 -G=100 ;从指定地址开始执行程序。 -G=100 105 110 120 8.跟踪命令(单步执行命令)T ① T;从当前IP开始执行一条指令。 ② T 数值;从当前IP开始执行多条指令。 ② T =地址; ③ T =地址数值; -T -T5 / -T=100 5 9.跟踪执行并跳过子程序命令P P [=地址] [数值];类似T命令,但跳过子程序和中断服务程序。 10.退出DEBUG命令Q Q;返回DOS环境。 -Q 11.命名命令N N 文件标示符;指定文件,以便用W命令在磁盘上生成该文件,或者用L命令从磁盘装入该文件。 -N MY_https://www.360docs.net/doc/b68433101.html,

debug常见命令使用说明

五、DEBUG调试程序 DEBUG.EXE程序是专门为分析、研制和开发汇编语言程序而设计的一种调试工具,具有跟踪程序执行、观察中间运行结果、显示和修改寄存器或存储单元内容等多种功能。它能使程序设计人员或用户触及到机器内部,因此可以说它是80X86CPU的心灵窗口,也是我们学习汇编语言必须掌握的调试工具。 1)DEBUG程序使用 在DOS提示符下键入命令: C>DEBUG [盘符:][路径][文件名.EXE][参数1][参数2] 这时屏幕上出现DEBUG的提示符“-”,表示系统在DEBUG管理之下,此时可以用DEBUG 进行程序调试。若所有选项省略,仅把DEBUG装入内存,可对当前内存中的内容进行调试,或者再用N和L命令,从指定盘上装入要调试的程序;若命令行中有文件名,则DOS把DEBUG 程序调入内存后,再由DEBUG将指定的文件名装入内存。 2)DEBUG的常用命令 (1)汇编命令A 格式:A[起始地址] 功能:将输入源程序的指令汇编成目标代码并从指定地址单元开始存放。若缺省起始地址,则从当前CS:100地址开始存放。A命令按行汇编,主要是用于小段程序的汇编或对目标程序的修改。 (2)反汇编命令U 格式1:U[起始地址] 格式2:U[起始地址][结束地址|字节数] 功能:格式1从指定起始地址处开始将32个字节的目标代码转换成汇编指令形式,缺省起始地址,则从当前地址CS:IP开始。 格式2将指定范围的内存单元中的目标代码转换成汇编指令。 (3)显示、修改寄存器命令R 格式:R[寄存器名] 功能:若给出寄存器名,则显示该寄存器的内容并可进行修改。缺省寄存器名,则按以下格式显示所有寄存器的内容及当前值(不能修改)。 AX=0000 BX=0004 CX=0020 DX=0000 SP=0080 BP=0000 SI=0000 DI=0000 DS=3000 ES=23A0 CS=138E IP=0000 NV UP DI PL NZ NA PO NC 138E:0000 MOV AX,1234 -R AX ;输入命令 AX 0014 ;显示AX的内容 :;供修改,不修改按回车。 若对标志寄存器进行修改,输入:-RF 屏幕显示如下信息,分别表示OF、DF、IF、SF、ZF、AF、PF、CF的状态。 NV UP DI PL NZ NA PO NC 不修改按回车键。要修改需个别输入一个或多个此标志的相反值,再按回车键。R命令只能显示、修改16位寄存器。 (4)显示存储单元命令D 格式1:D[起始地址]

终端软件版本管理规范

文件编码AQ2I-01-S003 版本V01 文件层级□一阶□二阶 ■三阶 文件类别 ■体系文件 □技术文件 编制部门T终端部机密等级■内文□秘密□机密□绝密 编制人熊红旺文件类别■通用□项目 审核何天翼编制日期2017.6.15 审批何天翼生效日期2017.6.20 总页数7 分发编号01 文件发布盖章 终端软件版本管理规范

文件制/修订记录 页码章节制/修订记录 版本 修订人修订日期备注修订前修订后 全部首次制定无V01 熊红旺2017.6.20

目录 1.概述 (4) 2.软件版本的分类 (4) 3.软件版本的使用流程和规则 (4) 3.1测试部测试版本、预封版版本、封版版本使用流程和规则 (5) 3.2生产线软件版本使用规则 (6) 4.软件版本的发布流程和规则 (6) 5.软件版本标识规则 (6) 5.1软件版本号命名规则 (6) 5.1.1关于软件版本唯一标识的说明 (7) 5.1.2测试部测试版本的软件版本号 (7) 5.1.3预封版版本的软件版本号 (7) 5.1.4封版版本的软件版本号 (8) 5.1.5回归验证版本的软件版本号 (8) 5.1.6特殊版本的软件版本号 (8) 5.2版本文件夹命名规则 (8) 5.2.1正式发布版本文件夹命名规则 (8) 5.2.2回归测试版文件夹命名规则 (8) 5.3版本发布邮件通知的内容和格式 (9) 5.3.1正式发布版本邮件通知的内容和格式 (9)

5.3.2回归测试版本邮件通知的内容和格式 (9) 5.4版本说明的内容和格式 (10) 5.4.1正式发布版本说明的内容和格式 (10) 5.4.2回归测试版本说明的内容和格式 (10)

利用DEBUG调试汇编语言程序段

利用DEBUG调试汇编语言程序段一.实验目的 1.熟悉DEBUG有关命令的使用方法; 2.利用DEBUG掌握有关指令的功能; 3.利用DEBUG运行简单的程序段。 二.实验容 1.进入和退出DEBUG程序; 1)开始—运行,输入cmd,点确定进入命令窗口 2)在命令窗口中输入dubug进入debug程序

3)进入debug窗口后,输入q命令退出debug 2.学会DEBUG中的 1)D命令(显示存数据D 段地址:偏移地址) 例1:-D100 ;显示DS段, 0100开始的128个字节容 说明:指定要显示其容的存区域的起始和结束地址,或起始地址和长度。 ①DSEGREG[起始地址] [L 长度] ;显示SEGREG段中(缺省默认为DS), 以[起始地址] (缺省为当前的偏移地址),开始的[L 长度] (缺省默认为128)个字节的容. ② D SEGREG[段地址:偏移地址]

;显示SEGREG段中(缺省默认为DS), [段地址:偏移地址] 开始的[L 长度] (缺省默认为128)个字节容 -D ;默认段寄存器为DS,当前偏移地址(刚进入debug程序偏移地址为0100H) -D DS:100 ;显示DS段, 0100H开始的128个字节容 -D CS:200 ;显示CS段, 0200H开始的128个字节容 -D 200:100 ;显示DS段, 0200:0100H开始的128个字节容 -D 200;显示DS段, 0200H开始的128个字节容 -D 100 L 10 ;显示DS段, 100H开始的100H个字节容 2)E命令(修改指定存) 例1:-E100 41 42 43 44 48 47 46 45 -D 100,L08

实验一--掌握DEBUG-的基本命令及其功能

实验一掌握DEBUG 基本命令及其功能【上篇】查看CPU和内存,用机器指令和汇编指令编程 一.实验目的: 掌握DEBUG 的基本命令及其功能 掌握win7 win8 使用DEBUG功能 二.实验内容: 1. 预备知识:Debug的使用 (1) 什么是Debug? Debug是DOS、Windows都提供的实模式(8086方式)程序的调试工具。使用它,可以查看CPU各种寄存器中的内容、内存的情况和在机器码级跟踪程序的运行。 (2) 我们用到的Debug功能 ●用Debug的R命令查看、改变CPU寄存器的内容; ●用Debug的D命令查看内存中的内容; ●用Debug的E命令改写内存中的内容; ●用Debug的U命令将内存中的机器指令翻译成汇编指令; ●用Debug的T命令执行一条机器指令; ●用Debug的A命令以汇编指令的格式在内存中写入一条机器指令。 (3) 进入Debug Debug是在DOS方式下使用的程序。我们在进入Debug前,应先进入到DOS方式。用以下方式可以进入DOS: ①重新启动计算机,进入DOS方式,此时进入的是实模式的DOS。 ②在Windows中进入DOS方式,此时进入的是虚拟8086模式的DOS。 三.实验任务 1. 从网上下载Dosbox和debug.exe(文件夹中有)。 2. debug.exe放在D:根目录,然后安装,安装完成以后,点击快捷方式进入Dos界面:

3.输入mount c d:\ 接着输入c: Dosbox 5.接着,你就可以使用Debug: debug 6.备注:debug.exe放在D:根目录下,你也可以把debug.exe放在任何一个文件夹下面。 其中这个文件夹就是mount c d:所对应的。 一.(1) 使用Debug,将下面的程序段写入内存,逐条执行,观察每条指令执行后,CPU 中相关寄存器中内容的变化。(逐条执行,每条指令执行结果截图) 机器码汇编指令 b8 20 4e mov ax,4E20H 05 16 14 add ax,1416H bb 00 20 mov bx,2000H 01 d8 add ax,bx 89 c3 mov bx,ax

VC如何releas调试

首先必须明确的是,什么是Release版程序,什么是Debug版程序 Debug通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序。Release称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的,以便用户很好地使用。 Debug 和Release 的真正秘密,在于一组编译选项。下面列出了分别针对二者的选项(当然除此之外还有其他一些,如/Fd /Fo,但区别并不重要,通常他们也不会引起Release 版错误,在此不讨论) Debug 版本 参数含义 /MDd /MLd 或/MTd 使用Debug runtime library (调试版本的运行时刻函数库) /Od 关闭优化开关 /D "_DEBUG" 相当于#define _DEBUG,打开编译调试代码开关(主要针对assert函数) /ZI 创建Edit and continue(编辑继续)数据库,这样在调试过程中如果修改了源代码不需重新编译 /GZ 可以帮助捕获内存错误 /Gm 打开最小化重链接开关,减少链接时间 Release 版本 参数含义 /MD /ML 或/MT 使用发布版本的运行时刻函数库 /O1 或/O2 优化开关,使程序最小或最快 /D "NDEBUG" 关闭条件编译调试代码开关(即不编译assert函数) /GF 合并重复的字符串,并将字符串常量放到只读内存,防止被修改

实际上,Debug 和Release 并没有本质的界限,他们只是一组编译选项的集合,编译器只是按照预定的选项行动。事实上,我们甚至可以修改这些选项,从而得到优化过的调试版本或是带跟踪语句的发布版本。 OK,知道了这些,谁还会说RELEASE版本不能调试? 只需要设置相应编译环境,RELEASE同样可以像DEBUG版本设置断点,查看参数。 步骤如下: 1、在Project Settings里选Settings For为All Configurations。 2、在C/C++标签中,Debug info 选Program Database。 3、在Link 标签中,Category选Debug,选中Debug info 复选框和Microsoft format。 现在就可以像在Debug版本中那样设置断点进行测试了,但是记住,Release版本由于代码优化,有些变量是观察不到的,行的运行顺序可能也会不同。 还有一种就是使用debugview.exe进行调试(https://www.360docs.net/doc/b68433101.html,),这个是个好东西。 debugview.exe是用来显示debug信息的,而这个debug信息就是由我们自己的application所发出的。我们可以看msdn上的关于debug的那些函数,一个比较有用的函数是OutputDebugString(LPCTSTR msg)。用这个函数,我们就可以把调试信息往外发出,而debugview.exe就可以接收到。 这其实是windows的一个机制,说起来也是很简单的东西,其实他们之间的交互就是一个4K 大小的share memory,

掌握DEBUG基本命令

实验课程名称微型计算机原理实验报告_实验项目名称掌握DEBUG基本命令_专业班级电子信息科学与技术101班_学生姓名____________ 学号_____ 实验成绩 指导教师签字

贵 州 大 学 实 验 报 告 纸 系 别 班 级 姓 名 学号 课 程 名 称 成 绩 评 定 教师签名 实 验 时 间 2011年 11 月 23 日 一、实验目的 (1)熟悉DEBUG 有关命令的使用方法。 (2)利用DEBUG 掌握有关指令的功能。 (3)利用DEBUG 运行简单的程序段。 二、实验内容 Ⅰ.掌握DEBUG 程序的各种命令,重点掌握U ,G ,T ,D ,E ,R 命令。 ⒈ 反汇编命令:-U[地址] 该命令从指定地址开始,反汇编32个字节,若地址省略,则从上一个U 命令的最后一条指令的下一个单元开始显示32个字节。

⒉运行命令G: ⒊追踪命令T,有两种格式: 1)逐条指令追踪:-T[=地址] 该命令从指定地址起执行一条指令后停下来,显示寄存器内容和状态值。 2)多条指令追踪: -T[=地址][值] 该命令从指定地址起执行n条命令后停下来,n由[值]确定。 ⒋显示内存单元内容的命令D,格式为: -D[地址]或-D[范围] 1)D命令后跟寄存器表示的地址 2)D命令后不加地址

3)D命令后加直接地址 ⒌修改内存单元内容的命令E,用给定的内容代替指定范围的单元内容: -E地址内容表 6.检查和修改寄存器内容的命令R,它有三种方式: 1)显示CPU内部所有寄存器内容和标志位状态;格式为:-R 2)显示和修改某个指定寄存器内容,格式为:-R 寄存器名 3)显示和修改标志位状态,命令格式为:-RF

Visual Studio中的debug和release版本的区别

Visual Studio中的debug和release版本的区别 Debug通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序。Release 称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的,以便用户很好地使用。 Debug 和Release 的真正秘密,在于一组编译选项。下面列出了分别针对二者的选项(当然除此之外还有其他一些,如/Fd /Fo,但区别并不重要,通常他们也不会引起Release 版错误,在此不讨论) Debug 版本 参数含义 /MDd /MLd或/MTd使用Debug runtime library (调试版本的运行时刻函数库) /Od 关闭优化开关 /D "_DEBUG" 相当于#define _DEBUG,打开编译调试代码开关(主要针对assert函数) /ZI 创建Edit and continue(编辑继续)数据库,这样在调试过程中如果修改了源代码不需重新编译 /GZ 可以帮助捕获内存错误 /Gm打开最小化重链接开关,减少链接时间 Release 版本 参数含义 /MD /ML 或/MT 使用发布版本的运行时刻函数库 /O1 或/O2 优化开关,使程序最小或最快 /D "NDEBUG" 关闭条件编译调试代码开关(即不编译assert函数) /GF 合并重复的字符串,并将字符串常量放到只读内存,防止被修改 实际上,Debug 和Release 并没有本质的界限,他们只是一组编译选项的集合,编译器只是按照预定的选项行动。事实上,我们甚至可以修改这些选项,从而得到优化过的调试版本或是带跟踪语句的发布版本。 哪些情况下Release 版会出错 有了上面的介绍,我们再来逐个对照这些选项看看Release 版错误是怎样产生的 1、Runtime Library:链接哪种运行时刻函数库通常只对程序的性能产生影响。调试版本的Runtime Library 包含了调试信息,并采用了一些保护机制以帮助发现错误,因此性能不如发布版本。编译器提供的Runtime Library 通常很稳定,不会造成Release 版错误;倒是由于Debug 的Runtime Library 加强了对错误的检测,如堆内存分配,有时会出现Debug 有错但Release 正常的现象。应当指出的是,如果Debug 有错,即使Release 正常,程序肯定是有Bug 的,只不过可能是Release 版的某次运行没有表现出来而已。 2、优化:这是造成错误的主要原因,因为关闭优化时源程序基本上是直接翻译的,而打开优化后编译器会作出一系列假设。这类错误主要有以下几种: 1. 帧指针(Frame Pointer)省略(简称FPO):在函数调用过程中,所有调用信息(返回地址、参数)以及自动变量都是放在栈中的。若函数的声明与实现不同(参数、返回值、调用方式),就会产生错误,但Debug 方式下,栈的访问通过EBP 寄存器保存的地址实现,如果没有发生数组越界之类的错误(或是越界“不多”),函数通常能正常执行;Release 方式下,优化会省略EBP 栈基址指针,这样通过一个全局指针访问栈就会造成返回地址错误是程序崩溃。

DEBUG使用方法

DEBUG使用方法 格式: DEBUG[[drive:][path]filename[testfile-parameters]] 参数:[drive:][path]filename 指定待调试可执行文件的所在位置及文件名。 testfile-parameters 指定待设计可执行文件需要的命令参数。 相关命令 -A (汇编,Assemble) -C (比较,Compare) -D (卸出,Dump) -E (输入数据,Enter)) -F (填充,Fill) -G (执行,Go) -H (十六进行运算,Hex) -I (读输入口,Input) -L (装入,Load) -M (移动,MOVE) -N (命令,NAME) -O (写输出口,OUTPUT) -P (调试循环程序,PROCEED) -Q (退出,QUIT) -R (寄存器,REGISTER) -S (找寻,SEARCH) -T (跟踪,TRACE) -U (反汇编,UNASSEMBLE) -W (写盘,WRITE) -XA (分配扩充内存,ALLOCATE EM) -XD (释放分配的扩充内存,DEALLOCATE EM) -XM (扩展内存页影像,MAP EXM PAGES) -XS (显示扩充内存状态,DISPLAY EM STATUS)

二、注意事项 不指定调试文件名时DEBUG命令的使用。 使用DEBUG命令时,如果未指定调试文件的所在位置及名子,DEBUG执行时将显示符(-)。这时,用户可输入任何一个DEBUG调试命令。 DEBUG命令 以下为DEBUG使用的调试命令及其简介: ?显示所有的调试命令 A汇编8086/8087/8088汇编语言源程序。 C比较两块内存的内容。 D显示部分内存的内容。 E人指定的地址开始把数据送入内存。 F将指一值填进某一范围的内存。 G运行内存中的程序。 H执行十六进制算术运算。 I从指定输入口输入一道字节值。 L把文件或磁盘扇区内容装入内存。 M拷贝某块内存的内容。 N指定文件名,以便L或W命令读写该文件;指定正调试文件所需的参数。 O发送一字节值至指定输出口。 P执行循环程序,重复字符串指令,软中断,或子程序。 Q结束DEBUG命令执行。 R显示或修改一个或数个寄存器内容。 S在内存指定范围内找寻指定的值。 T执行一条指令,然后显示所有寄存器的内容,所有标志状态,以及下一条要执行的指令(汇编语言格式)。 U反汇编某一范围内的字节,显示其相应汇编语言源语名。 W把正调试文件写入磁盘。 XA分配扩充内存 XD释放分配的扩充内存。 XM作扩充内存页的影像。 XS显示扩充内存的状态。

引用 VC++ Debug和Release区别

引用VC++ Debug和Release区别 2009-12-17 09:53 -------------------------------------- 本文主要包含如下内容: 1. Debug 和 Release 编译方式的本质区别 2. 哪些情况下 Release 版会出错 2. 怎样"调试" Release 版的程序 -------------------------------------- 一、Debug 和 Release 编译方式的本质区别 Debug 通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序。Release 称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的,以便用户很好地使用。 Debug 和 Release 的真正秘密,在于一组编译选项。下面列出了分别针对二者的选项(当然除此之外还有其他一些,如/Fd /Fo,但区别并不重要,通常他们也不会引起 Rele ase 版错误,在此不讨论) Debug 版本: /MDd /MLd 或 /MTd 使用 Debug runtime library(调试版本的运行时刻函数库) /Od 关闭优化开关 /D "_DEBUG" 相当于 #define _DEBUG,打开编译调试代码开关(主要针对 assert函数) /ZI 创建 Edit and continue(编辑继续)数据库,这样在调试过 程中如果修改了源代码不需重新编译 /GZ 可以帮助捕获内存错误 /Gm 打开最小化重链接开关,减少链接时间 Release 版本: /MD /ML 或 /MT 使用发布版本的运行时刻函数库 /O1 或 /O2 优化开关,使程序最小或最快 /D "NDEBUG" 关闭条件编译调试代码开关(即不编译assert函数) /GF 合并重复的字符串,并将字符串常量放到只读内存,防止 被修改 实际上,Debug 和 Release 并没有本质的界限,他们只是一组编译选项的集合,编译 器只是按照预定的选项行动。事实上,我们甚至可以修改这些选项,从而得到优化过的调试版本或是带跟踪语句的发布版本。 二、哪些情况下 Release 版会出错

相关文档
最新文档