调试器是干嘛的
DeBugger(调试器)是自从计算机诞生伊始就始终伴随着程序员的一个挚友,起初的调试器都是基于硬件直接实现的。直到计算机行业有了比较突出的发展之后,商业化的软件调试器才与计算机程序编写工作人员们见面。作为软件维护与错误修正的一个最重要、最直接,也是必不可少的一种机制,中央处理器制造商也在不厌其烦地在CPU物理结构上支持着调试这种行为。 编辑本段调试器的工作原理: 调试器的工作原理是基于中央处理器的异常机制,并由操作系统的异常分发\事件分发的子系统(或模块)负责将其封装处理后,以比较友好的方式与调试器进行实时交互。 每当调试器捕获到一个异常\事件之后,将会根据调试器的自身逻辑来判定是否需要接管这个异常\事件,并决定由调试器的哪个函数来接管。当调试器接管下来这个异常\事件后,将根据用户的需求对其进行进一步的处理,处理完毕后再通知系统已经处理完毕,此时新一轮的异常\事件捕获、分发循环开始。 调试器的基本功能: 1、控制软件运行 调试器的最基本功能就是将一个飞速运行的程序中断下来,并且使其按照用户的意愿执行。调试器是靠迫使目标程序触发一个精心构造的异常来完成这些工作的。 2、查看软件运行中信息 查看软件的当前信息,这些信息包含但不限于当前线程的寄存器信息,堆栈信息、内存信息、当前EIP附近的反汇编信息等。 3、修改软件执行流程 修改内存信息、反汇编信息、堆栈信息、寄存器信息等等。
调试工具是什么?
调试工具亦称调试程序、调试器,指一种用于调试其它程序的计算机程序及工具。能够让代码在指令组模拟器中可以检查运行状况以及选择性地运行,以便排错、调试。当开发的进度遇到瓶颈或找不出哪里有问题时,这技术将是非常有用的。但是将程序运行在调试器之下,这将比直接在运作的平台以及处理器上运行还要来得慢。
当程序死机时,如果调试器是属于来源阶段调试器或象征阶段调试器,调试器即可以显示出错误所在位置的源代码,并使其于集成开发环境里也能看见。要是属于低级调试器或机器语言调试器的话,它将能显示的是一行一行的反汇编码(这里指的死机情况是指,当发生原因是因为程序员在设计上的疏失,使得程序无法继续正常运行的情况。例如程序尝试去调用某个对在该版本的CPU上而言是不合理的操作,或者是对保护或无法访问的存储器位置进行写入)。
典型的调试器通常能够在程序运行时拥有以下这些功能,例如单步运行、利用中断点使程序遇到各种种类的事件时停止(一般用于使程序停止在想要检查的状态)、以及追踪某些变量的变化。有些调试器也有能力在想要调试的程序在运行状态时,去改变它的状态,而不仅仅只是用来观察而己。
一个好的调试器存在的重要性不夸张。就算一个编程语言/平台在电脑的行程里运作非常良好。有无调试器以及调试器的好坏,对于一个编程语言及平台来说,经常是能不能正常运行的重要因素。总之,软件要能够(或经常)运行在不同的调试器下进行测试,是非常重要的。不过由于调试器出现将做对软件程序的内部时间的不可避免的变动。所以,即使是一个几近完美的调试器,在多任务环境或分布式系统下,它也会更难去测试到运行时的问题。
一个调试器除了能够用来调试,同样的,它也经常被用来作为破解软件的工具,像是用来跳过软件的防拷贝保护,还有破解序号验证,以及其它软件保护功能。
大部分的主流调试工程,譬如gdb和dbx提供基于主控台的命令提示接口。调试器前端应用,现在普遍是提供给集成式开发工具(IDE)作为调试引撆、动态化、可视化等特点。
什么是软件调试
软件测试是为了发现错误而执行程序的过程。或者说,软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计一批测试用例(即输入数据及其预期的输出结果),并利用这些测试用例去运行程序,以发现程序错误的过程。
测试是为了发现软件中存在的错误;证明软件开发的正确性。
测试以已知条件开始,使用预先定义的程序,且有预知的结果,不可预见的仅是程序是否通过测试;调试一般是以不可知的内部条件开始,除统计性调试外,结果是不可预见的。
测试是有计划的,需要进行测试设计;不受时间约束。
测试经历发现错误、改正错误、重新测试的过程;调试是一个推理的过程,并且在开发的整个过程中都必须进行调试。
测试的执行是有规程的。
测试经常是由独立的测试组在不了解软件设计的条件下完成的;必须由了解详细设计的开发人员完成。
大多数测试的执行和设计可以由工具支持;调式时,开发人员能利用的工具主要是调试器。
什么是软件调试
软件测试是为了发现错误而执行程序的过程。或者说,软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计一批测试用例(即输入数据及其预期的输出结果),并利用这些测试用例去运行程序,以发现程序错误的过程。
测试是为了发现软件中存在的错误;证明软件开发的正确性。
测试以已知条件开始,使用预先定义的程序,且有预知的结果,不可预见的仅是程序是否通过测试;调试一般是以不可知的内部条件开始,除统计性调试外,结果是不可预见的。
测试是有计划的,需要进行测试设计;不受时间约束。
测试经历发现错误、改正错误、重新测试的过程;调试是一个推理的过程,并且在开发的整个过程中都必须进行调试。
测试的执行是有规程的。
测试经常是由独立的测试组在不了解软件设计的条件下完成的;必须由了解详细设计的开发人员完成。
大多数测试的执行和设计可以由工具支持;调式时,开发人员能利用的工具主要是调试器。
嵌入式开发中PC端使用什么调试和测试软件?
嵌入式系统的功能千差万别,测试的要求也千差万别,故绝对通用的软件是没有的,相对通用的黑盒测试工具,大致分为两种类型:纯软件的测试平台、软硬一体化的测试平台。 1)纯软件的测试平台,通常比较平易近人,简单易用,应用成本低。例如,格西烽火通信测试软件,是一款基于串口和网口的调试和测试软件,主要解决电子研发过程中调试和测试软件定制化过多的问题,能够快捷地定制任意通信规约,使得通信软件能够应付快速多变的通信测试环境。2)软硬一体化的测试平台通常都是高大上的,价格也不菲,自带很多通信接口硬件模块,支持的功能也很多。例如,凯云通用嵌入式系统测试平台,适用于嵌入式系统在设计、仿真、开发、调试、测试、集成验证和维护等各阶段配置项级别和系统级别的动态测试与验证。
什么是调试器
调试器
debugger(调试器)
一种开发环境,它支持应用程序代码的单步执行和查看代码中变量的内容。
有源代码级调试和二进制调试之分。
如果你不是第一次开始程序工作,你已经不需要调试器。我们的业余编程者可能还要时常需要他。虽然Visual C++ 调试器一直稳定地改良着,但是它实际上并不是很稳定。 调试器密切地注视Visual C++的工作以确定程序的错误点,以节省程序员的工作时间。其工具栏按钮插入暂停点,而且可以控制程序的单步运行。 注意参数的改变和视窗界限的扩大,一个物件指标表示表便能表示所有类别和基本的数据成员类别。如果你把光标放置在程序上,调试器会给你一个小窗口以观察它的数值。如果你要为程序除错,你首先应该选用编译器和由程序编译而产生调试信息来进行除错。
请问can调试软件可以通用吗?
感谢题主的邀请,我来说下我的看法:一般情况下,不同的CAN硬件设备是不能通用一个CAN软件的,反过来也是一样,这其中的原因比较复杂,比如不想技术外泄,或者兼容难度大等等。当然,事无绝对,也是有多种设备能够用一种软件使用这种情况的。如果我们有这方面的疑问,我们应该在购置设置之前就向对方询问清楚,以免造成不必要的麻烦,费时费力,你说呢?如果您需要相关的软硬件的话,可以前往我们的网站进行具体的咨询,欢迎来访。
【单片机】常说的编程器、烧录器、仿真器,这些概念有什么区别?
编程器:为可编程的集成电路写入数据的工具,编程器主要用于单片机(含嵌入式)/存储器(含BIOS)之类的芯片的编程(或称刷写)。编程器主要修改只读存储器中的程序,编程器通常与计算机连接,再配合编程软件使用。烧录器:在大陆是叫编程器。因为台湾的半导体产业发展的早,到大陆后,客户之所以叫它为“编程器”是因为现在英文名为PROGRAMMER,这个英文名与一般编写软件程式设计师是同名,所以就叫“编程器”。烧录器实际上是一个把可编程的集成电路写上数据的工具,烧录器主要用于单片机(含嵌入式)/存储器(含BIOS)之类的芯片的编程(或称刷写)。仿真器(emulator)以某一系统复现另一系统的功能。与计算机模拟系统(Computer Simulation)的区别在于,仿真器致力于模仿系统的外在表现、行为,而不是模拟系统的抽象模型。扩展资料:选购方法:1、稳定性。通常欧美的烧录器技术成熟,性能稳定,如ELNEC生产的烧录器是相当稳定,有较高的市场占有率;2、认品牌。一般情况下比较知名的IC编程器/烧录器大厂得经过市场的验证,所以品质相对较好,如ELNEC等日,美欧洲烧录器厂生产的烧录器,时间最长,技术最成熟,从质量,品牌角度来讲是最佳的选择;3、烧录速度:烧录器的烧录速度也很重要。目前市场有最新产品如:ELNEC的BEEHIVE204,BEEHIVE208的烧录器,烧录速度是其它同类型机器的10倍,建议烧录64M以下芯片可选择BEEHIVE204;4、支持IC型号的多少:通常状况下支持芯片型号较多的烧录器,相对要好一些。如Elnec编程器,到2013年11月23日止,支持的IC数种类超过80000种(每天还在不断增加中,可在浦洛电子网站下载到最新的烧录软件.)5、售后服务:烧录器因其专业性较强,配备的耗材种类较多,很易出来各种不同的问题,故售后相当重要。像ELNEC在大陆都有专业的销售与技术支持团队,例如:华南地区有浦洛电子;华东地区有浦创电子、华北地区也有浦创电子的分公司。6、是否有能力开发烧录座等耗材及升级IC支持数。随着IC芯片种类的更新,以前的烧录座不适合使用,需要编程器厂商开发新的烧录座。参考资料来源:百度百科-编程器参考资料来源:百度百科-烧录器参考资料来源:百度百科-仿真器
单片机USBISP下载器与USB仿真器 的作用分别是什么
1:USBISP,也叫USB转ISP下载线,是通过电脑的USB接口把文件下载到目标芯片的转接电缆。
2:USB仿真器,通过USB接口连接目标芯片,完成程序文件的下载和仿真。
3:仿真器又分在线仿真器和实时在线仿真器。
3.1:在线仿真器:通过仿真器与目标芯片的JTAG接口或ICSP接口连接后,将调试执行程序和源程序烧写入目标芯片,其程序运行与调试均在目标芯片中进行,也可以理解为依靠目标芯片才可以运行和调试。
3.2:实时在线仿真器:是指程序的运行和调试在仿真器与目标芯片中同时进行,也可理解为在仿真器的仿真芯片中进行,即用仿真芯片仿真了目标芯片,所以这种工具才叫仿真器,这才是真正的仿真器!此时要注意两点:第一,程序并没有烧写到目标芯片中;第二,程序的运行和调试不依赖目标芯片,即目标芯片有没有都无所谓,照样出结果。
摘自《无线电》2009 《单片机开发工具大揭秘》马晓晶 。
我想用usb转can调试器来解析汽车的CAN协议,请问应该怎么做呢?
感谢题主的邀请,我来说下我的看法:您所说的USB转CAN调试器其实就是检测CAN总线设备数据的CAN分析仪。因为大多数的CAN总线都被应用在汽车控制上,所以使用以上工具解析汽车CAN数据就成了我们最常见的操作了。在进行汽车CAN数据解析的时候,我们用一台安装有CAN分析软件的电脑连接USBCAN调试器,USB口对USB口,而USBCAN调试器的另一端,如果是OBD接口,那么就直接连接汽车的OBD接口,如果汽车的OBD接口被设置的障碍,那就采用那种端子接口的USBCAN转换器,用双脚屏蔽线连接USBCAN设备和汽车内部CAN总线。所有物理层都连接完毕后,我们使用电脑对汽车CAN总线发送接收数据,通过控制变量法逐一确定每个动作对应的信号,最终实现汽车CAN数据CAN协议的解析。如果你对USBCAN转换器有兴趣或者想进行汽车CAN协议解析的话,可以登录GCGD官网进行具体的咨询。
usb转can是什么?
usb转can就是USBCAN分析仪,具有CAN总线数据收发、分析等功能。用USBCAN分析仪,用户可以使用PC机管理CAN总线设备,还可以进行CAN总线数据采集、数据分析、数据处理等任务。需要高级功能的得看厂家吧。比如说广成科技的USBCAN分析仪使不仅具有CAN总线数据收发等基本功能,还具备自动识别波特率、数据统计、数据过滤、数据录播等高级功能。需要高级功能可以看看那个厂家的can分析仪有这种功能。
程序调试是什么
问题一:c语言中的调试有什么作用 说白了就是对你写的程序进行简单的测试
如果你用的是Visual C++6.0的软件,
在写好了程序后(没有语法上的错误),按F10,即可进入单步调试,每按一次F10可以看到程序会走到一下行代码. 如果当前指向的代码有一个函数,按F11,可以进入这个函数体内,查看程序在函数体内的执行过程和数据的变化....
其它这个软件的高度功能很强大的,一时也不可能说得清楚.但主要能子解一些简单的高度方法就行了:F9 设置断点 F5 调试运行 这经常一直用的:在程序的某一个代码处按F9,会有一个圆点出现.再按F5,启动程序,当程序执行到这个圆点时,会停下来,此时你可以按F5,继续运行下到一个断点,或者你也可以按F10进行单步调试....
还有很多,你可以去百度搜一搜
问题二:java调试程序的目的和步骤是什么 目的:发现程序中的bug
步骤:先对相应的代码行打上断点,然后用debug模式启动这个程序,程序在执行到断点代码行时会停止,然后可以根据对应的操作,执行下一行代码等等来发现程序在执行到哪一行代码时出错,为什么出错
问题三:c++为什么要调试调试的目的是什么? 当程序出现崩溃而编译器又无报错,开发人员在暂时无法分析出的情况下会选择调试程序,以更直观的方式看出程序出了什么错误。
问题四:c语言中什么叫做单步调试,步骤是什么??? 单步指一次执行一行代码,一般在编辑环境中按F8键就可以
问题五:软件(程序)调试的任务是什么? 选择题?(C)吧
问题六:电脑总提示实时调试是什么意思,怎么解决? 实时调试也就是JIT (Just in time)。当运行时错误中断了服务器端脚本执行时,Microsoft 脚本调试程序自动启动,显示 .asp 文件,将语句指针指向导致错误的行,并生成错误消息。使用这种类型的调试,也叫实时调试,计算机将暂停进一步执行程序。必须使用编辑程序改正错误并保存所作更改,然后才能继续运行脚本。 换句话说启动了一个正常用户不应该启动的选项:Microsoft 脚本调试程序工具。解决方法: 打开IE浏览器然后选择工具- internet选项-高级在菜单里你可以看到2个禁用脚本调试 一个是指派给IE的,一个是指派给任何其他浏览器的。全部打上勾,然后选择应用-确认。大概就能解决了。 通常这项服务在xp 2000系统里是自动关闭的。如果是2003或者安装了SQL好像是会自动启动了的。如果不行的话,请在开始-运行-输入msconfig然后选择服务。如果看到有个叫script blocking service的程序,把它的勾去掉,重启系统。关于迅雷的实时调试: Microsoft Script Editor是Microsoft office xp的一个组件。在office工具-宏-Microsoft 脚本编译器进行安装。都安好后,打开IE,在工具-internet选项-高级中,把禁用脚本调试(Int鸡rnet Explorer)和禁用脚本调试(其他)前面的钩钩去掉。然后重新启动IE,当有JS错误的时候一路点是就会进入调试页面。只要把上面这两个选项打上勾就不会出现这个调试窗口了。 请如下操作: 在INTERNET选项里,点击操作删除COOKIES,删除文件同时选择删除所有脱机内容,清除历史记录;将安全级别设置为默认级别,隐私设置为中级,高级设置为还原默认设置。网友最佳答复: 这个问题很常见 我想你说的应该就是Microsoft Script Editor也就是微软脚本程序。这个跟你的IE有关,所以:打开IE,在工具-internet选项-高级中,把禁用脚本调试(Internet Explorer)和禁用脚本调试(其他)前面的钩钩去掉。然后重新启动IE,当有JS错误的时候一路点是就会进入调试页面.只要把上面这两个选项打上勾就不会出现这个调试窗口了.
问题七:C语言中编译 生成 调试 测试 运行各是什么意思有什么区别 编译依赖于编译器,英文是pile, vc中这一过程是将源代码转换成目标文件,如.obj文件,.rc文件等
生成应该指的是链接的过程,英文是build.依赖于链接器. vc中在这一阶段将所有的目标文件和所有需要用到的组件组合成一个整体,例如需要生成的是windows系统下的PE可执行文件,链接器会依照特定格式将目标文件组合,最后生成PE格式的.exe或.dl伐文件.
调试是所有或部分代码编写完成后,让程序在调试器中运行,用这种手段对程序进行分析,找出并修正潜在问题.
运行就是让程序在系统中运行啦.
问题八:软件测试和软件调试的区别是什么 软件测试是软件测试人员和程序员都参与的一项揣作,是贯穿整个生命周期的,
只需要发现软件的错误,而软件调试主要是程序员自己参与,对程序(设计、编
码)进行修改、排除错误,主要是在开发阶段。
问题九:有什么好的方法调试程序啊??高手们所说的log是什么意思啊?log调试是什么意思? 常见调试技巧:
1,使用编译器的断点调试功能;
2,在需要检查搐位置加打印语句,使其在控制台输出,来判定问题的发生位置;
3,使用assert宏,这个比较狠。
你所谓的log调试,就是我说的第2种。
问题十:在线调试编程是什么意思 指仿真板和电脑通信中,你直接更改程度再运行仿真就做到在线调试