爱出汗是什么原因女人| 杀青了是什么意思| 腹腔积水是什么原因造成的| 脚气用什么药膏效果好| 三月出生的是什么星座| 黄芪的读音是什么| 维生素c主治什么| 吃护肝片有什么副作用| 以什么| 蟋蟀用什么唱歌| 什么字永远写不好| 男人勃不起是什么原因造成的| 手腕疼挂什么科| 王的五行属性是什么| 检查胃镜需要提前做什么准备| 97年的属什么生肖| 16是什么意思| 突厥是现在的什么地方| 心肌缺血是什么原因引起的| 丝瓜只开花不结果是什么原因| 正月二十一是什么星座| 怀字五行属什么| 黑糖是什么糖| 手上螺纹多少代表什么| 钾高吃什么可以降下来| 小学生什么时候考试| 什么店可以买到老鼠药| 眩晕症是什么原因引起| 熊猫是什么科| 参军意愿选什么比较好| 脚底出汗是什么原因女| 像狐狸的狗是什么狗| 耳膜炎是什么原因引起的| 什么虎不吃人| 二级烫伤是什么程度| 三月二十二是什么星座| 爰是什么意思| 自主意识是什么意思| 阴阳和合是什么意思| 脚麻是什么原因引起的| 消化不好吃什么药| 美容行业五行属什么| 蓝蓝的天上白云飘是什么歌| 后半夜咳嗽是什么原因| 南通有什么特产| 什么的云海| 发烧怕冷是什么原因| 为什么眼睛会红| 白兰地是属于什么酒| 月朔是什么意思| hicon是什么牌子| 牙龈出血吃什么药| 人突然消瘦是什么原因| 口干口苦吃什么药好| 大小便失禁是什么原因造成的| 心率用什么字母表示| 手五行属什么| 佛性是什么意思| 什么矿泉水比较好| 肾气虚吃什么中成药| 针灸后需要注意什么| 说话快的人什么性格| 怡的意思和含义是什么| 三月二十六是什么星座| 脂肪肝是什么引起的| 中焦不通用什么中成药| 益生菌对人体有什么好处| 菠菜炒什么好吃| 为什么会发生地震| 下午茶是什么意思| he是什么气体| 心率低于60说明什么| 马是什么车| 一唱一和是什么生肖| 相恋纪念日送什么礼物| 什么赴什么继| 什么情况下要打破伤风| 巧克力囊肿是什么意思| 肠道肿瘤有什么症状| 松茸是什么东西| 夏枯草治什么病| secret什么意思| 关羽字什么| lok是什么意思| 必修是什么意思| 飞行模式和关机有什么区别| 女性支原体感染有什么症状| 小孩用脚尖走路是什么原因| 五心烦热吃什么中成药| 动脉瘤是什么| 中国的八大菜系是什么| 爱的真正含义是什么| 什么是土象星座| 牛皮癣是什么样的| 什么是对食| 什么东西越吃越饿| 1962年五行属什么| 薄荷叶泡水喝有什么功效和作用| 大伽是什么意思| 什么是扁平疣图片| 甲状腺斑块是什么意思| 为什么会胃胀气| pac是什么| 动脉斑块是什么意思| 肝火旺盛吃什么| 粘纤是什么材料| 璨字五行属什么| 载脂蛋白是什么意思| 起湿疹是什么原因造成的| 股票洗盘是什么意思| 多囊有什么危害| 幽门螺杆菌是什么意思| 意尔康属于什么档次| 燃烧脂肪是什么感觉| 九头身是什么意思| 睡觉咬牙齿是什么原因引起的| 胆固醇高会引起什么病| 持之以恒是什么意思| 脑动脉瘤是什么原因引起的| 鼻炎会引起什么症状| 什么叫脑白质病| 布朗是什么水果| 为什么要小心吉普赛人| 猪与什么属相相冲| 毒龙是什么意思| 炜字五行属什么| 化妆品属于什么行业| 电磁炉上可以放什么锅| 脚软没力气是什么原因引起的| 为什么吃饱了就犯困| 检查怀孕要做什么检查| 唐氏综合征是什么病| 梦见钱包丢了是什么意思| 生物医学工程专业学什么| 婚姻是爱情的坟墓是什么意思| 梦见朋友怀孕了是什么意思| 一个虫一个夫念什么| 周星驰是什么星座| 房颤是什么意思| 此什么非彼什么的意思| 衍生物是什么意思| 9月19号什么星座| 轴向是什么意思| sat是什么考试| 角是什么意思| 临床药学是干什么的| 三伏天吃什么对身体好| 送巧克力代表什么意思| 男人梦见老鼠什么征兆| 菊花代表什么生肖| 吃螃蟹不能喝什么饮料| 发挥失常是什么意思| 护肝养肝吃什么药| 低密度脂蛋白低是什么原因| uspa是什么牌子| ttm是什么意思| 脖子上有痣代表什么| 退行性改变是什么意思| 亚玛病是什么病| 五月二十四是什么星座| 焦虑症吃什么药效果好| 婴儿什么时候开始说话| 不想睡觉是什么原因| 屁股长痘痘用什么药膏| 倒走对身体有什么好处| 甄嬛传什么时候拍的| 智五行属性是什么| 中成药是什么意思| 临床医学是什么意思| 什么人适合吃红参| p是什么面料| 7月1日是什么节| 人流后需要注意什么| 9月30日什么星座| 鄙视你是什么意思| 三个羊是什么字| 夏天适合吃什么食物| 男生染头发什么颜色好看| 朱元璋是什么星座| 弄璋之喜是什么意思| 低密度脂蛋白胆固醇高吃什么药| 什么是肺腺癌| 氟斑牙是什么原因造成的| 翔字五行属什么| 西洋参有什么作用| 细菌性肠炎吃什么药| 肠道门诊看什么病| 牙齿酸痛什么原因| 猕猴桃不能和什么一起吃| 屁股生疮是什么原因| 吃什么解腻| 缺乏维生素b12的症状是什么| 胃窦炎吃什么药最好| 晚上十一点半是什么时辰| 促甲状腺激素偏高是什么意思| 血小板分布宽度低是什么原因| 为什么眼睛会疼| 家里进蝙蝠什么预兆| 脸肿是什么原因引起的| 1月29日是什么星座| 女内分泌检查什么项目| 什么是低密度脂蛋白胆固醇| 胰岛素是干什么用的| 叶绿素主要吸收什么光| 自限性疾病是什么意思| 五岳是什么意思| 结婚13年是什么婚| 缓缓是什么意思| 冰箱什么品牌好| 咳嗽胸口疼是什么原因| 仓鼠能吃什么| 十一月五号是什么星座| 牙龈萎缩用什么牙膏| 过年吃什么| 开除公职是什么意思| 打仗是什么意思| 云南有什么少数民族| 盗汗吃什么药| 10.16是什么星座| 支气管炎吃什么药最好| 得寸进尺是什么生肖| AX是什么意思| 尔字五行属什么| 憩室是什么病| 为什么醋能让疣体脱落| 婚检男性检查什么项目| 开门杀是什么意思| 什么水果补钙| 中将是什么级别的干部| cook什么意思| 奥美拉唑治什么病| 湖北人喜欢吃什么菜| 精囊炎吃什么药最有效| 为什么月经会提前来| 情商是什么| faye是什么意思| 梦见自己家盖房子是什么预兆| 葛洲坝集团是什么级别| pt是什么| 梦见跟别人打架是什么意思| 什么牌子的裤子质量好| 蒙脱石散不能和什么药一起吃| adhd挂什么科| 舌炎吃什么药好得快| 孩子发烧按摩什么部位退烧| 肚子着凉吃什么药| 肝脏在人体的什么位置| 1月21号什么星座| 蜗牛的触角有什么作用| 烫伤抹什么药膏| 什么补血效果最好最快| 耳道发炎用什么药| 藏红花有什么作用和功效| 肺占位病变是什么意思| 是什么品牌| 属兔的守护神是什么菩萨| 宝付支付是什么| 慢性胰腺炎有什么症状| 什么手机像素最高| 玫瑰花的花语是什么| 条状血流信号是什么意思| 四时是什么时辰| 早期教育是什么| hrd阳性是什么意思| 百度Jump to content

开春必不可少的针织开衫 这样穿轻松舒服又美美哒!

From Wikipedia, the free encyclopedia
Winpdb debugging itself
百度 否定了怀孕一说。

A debugger is a computer program used to test and debug other programs (the "target" programs). Common features of debuggers include the ability to run or halt the target program using breakpoints, step through code line by line, and display or modify the contents of memory, CPU registers, and stack frames.

The code to be examined might alternatively be running on an instruction set simulator (ISS), a technique that allows great power in its ability to halt when specific conditions are encountered, but which will typically be somewhat slower than executing the code directly on the appropriate (or the same) processor. Some debuggers offer two modes of operation, full or partial simulation, to limit this impact.

An exception occurs when the program cannot normally continue because of a programming bug or invalid data. For example, the program might have tried to use an instruction not available on the current version of the CPU or attempted to access unavailable or protected memory. When the program "traps" or reaches a preset condition, the debugger typically shows the location in the original code if it is a source-level debugger or symbolic debugger, commonly now seen in integrated development environments. If it is a low-level debugger or a machine-language debugger it shows the line in the disassembly (unless it also has online access to the original source code and can display the appropriate section of code from the assembly or compilation).

Features

[edit]

Typically, debuggers offer a query processor, a symbol resolver, an expression interpreter, and a debug support interface at its top level.[1] Debuggers also offer more sophisticated functions such as running a program step by step (single-stepping or program animation), stopping (breaking) (pausing the program to examine the current state) at some event or specified instruction by means of a breakpoint, and tracking the values of variables.[2] Some debuggers have the ability to modify the program state while it is running. It may also be possible to continue execution at a different location in the program to bypass a crash or logical error.

The same functionality which makes a debugger useful for correcting bugs allows it to be used as a software cracking tool to evade copy protection, digital rights management, and other software protection features. It often also makes it useful as a general verification tool, fault coverage, and performance analyser, especially if instruction path lengths are shown.[3] Early microcomputers with disk-based storage often benefitted from the ability to diagnose and recover corrupted directory or registry data records, to "undelete" files marked as deleted, or to crack file password protection.

Most mainstream debugging engines, such as gdb and dbx, provide console-based command line interfaces. Debugger front-ends are popular extensions to debugger engines that provide IDE integration, program animation, and visualization features.

Record and replay debugging

[edit]

Record and replay debugging,[4] also known as "software flight recording" or "program execution recording", captures application state changes and stores them to disk as each instruction in a program executes. The recording can then be replayed over and over, and interactively debugged to diagnose and resolve defects. Record and replay debugging is very useful for remote debugging and for resolving intermittent, non-deterministic, and other hard-to-reproduce defects.

Reverse debugging

[edit]

Some debuggers include a feature called "reverse debugging", also known as "historical debugging" or "backwards debugging". These debuggers make it possible to step a program's execution backwards in time. Various debuggers include this feature. Microsoft Visual Studio (2010 Ultimate edition, 2012 Ultimate, 2013 Ultimate, and 2015 Enterprise edition) offers IntelliTrace reverse debugging for C#, Visual Basic .NET, and some other languages, but not C++. Reverse debuggers also exist for C, C++, Java, Python, Perl, and other languages. Some are open source; some are proprietary commercial software. Some reverse debuggers slow down the target by orders of magnitude, but the best reverse debuggers cause a slowdown of 2× or less. Reverse debugging is very useful for certain types of problems, but is still not commonly used yet.[5]

Time travel debugging

[edit]

In addition to the features of reverse debuggers, time travel debugging also allow users to interact with the program, changing the history if desired, and watch how the program responds.

Language dependency

[edit]

Some debuggers operate on a single specific language while others can handle multiple languages transparently. For example, if the main target program is written in COBOL but calls assembly language subroutines and PL/1 subroutines, the debugger may have to dynamically switch modes to accommodate the changes in language as they occur.

Memory protection

[edit]

Some debuggers also incorporate memory protection to avoid storage violations such as buffer overflow. This may be extremely important in transaction processing environments where memory is dynamically allocated from memory 'pools' on a task by task basis.

Hardware support for debugging

[edit]

Most modern microprocessors have at least one of these features in their CPU design to make debugging easier:

  • Hardware support for single-stepping a program, such as the trap flag.
  • An instruction set that meets the Popek and Goldberg virtualization requirements makes it easier to write debugger software that runs on the same CPU as the software being debugged; such a CPU can execute the inner loops of the program under test at full speed, and still remain under debugger control.
  • In-system programming allows an external hardware debugger to reprogram a system under test (for example, adding or removing instruction breakpoints). Many systems with such ISP support also have other hardware debug support.
  • Hardware support for code and data breakpoints, such as address comparators and data value comparators or, with considerably more work involved, page fault hardware.[6]
  • JTAG access to hardware debug interfaces such as those on ARM architecture processors or using the Nexus command set. Processors used in embedded systems typically have extensive JTAG debug support.
  • Micro controllers with as few as six pins need to use low pin-count substitutes for JTAG, such as BDM, Spy-Bi-Wire, or debugWIRE on the Atmel AVR. DebugWIRE, for example, uses bidirectional signaling on the RESET pin.

Debugger front-ends

[edit]

Some of the most capable and popular debuggers implement only a simple command line interface (CLI)—often to maximize portability and minimize resource consumption. Developers typically consider debugging via a graphical user interface (GUI) easier and more productive.[citation needed] This is the reason for visual front-ends, that allow users to monitor and control subservient CLI-only debuggers via graphical user interface. Some GUI debugger front-ends are designed to be compatible with a variety of CLI-only debuggers, while others are targeted at one specific debugger.

[edit]

Debugging is often used to illegally crack or pirate software, which is usually illegal even when done non-maliciously. Crackme's are programs specifically designed to be cracked or debugged. These programs allow those with debuggers to practice their debugging ability without getting into legal trouble.

List of debuggers

[edit]

Some widely used debuggers are:

Earlier minicomputer debuggers include:

Mainframe debuggers include:

See also

[edit]

References

[edit]

Citations

[edit]
  1. ^ Aggarwal and Kumar, p. 302.
  2. ^ Aggarwal and Kumar 2003, p. 301.
  3. ^ Aggarwal and Kumar, pp. 307-312.
  4. ^ O'Callahan, Robert; Jones, Chris; Froyd, Nathan; Huey, Kyle; Noll, Albert; Partush, Nimrod (2017). "Engineering Record And Replay For Deployability Extended Technical Report". arXiv:1705.05937 [cs.PL].
  5. ^ Philip Cla?en; Undo Software. "Why is reverse debugging rarely used?". Programmers Stack Exchange. Stack Exchange, Inc. Retrieved 12 April 2015.
  6. ^ Aggarwal and Kumar 2003, pp. 299-301.

Sources

[edit]
[edit]
我们在干什么 出现幻觉幻听是什么心理疾病 披萨用什么面粉 分泌多巴胺是什么意思 血管钙化是什么意思
lsil什么意思 海啸是什么 甲状腺结节不能吃什么东西 梦到车被撞了什么预兆 为什么会黄体功能不足
贝加台念什么 阴道细菌感染用什么药 李子是什么水果 缢死是什么意思 尖锐湿疣什么症状
殊胜的意思是什么 三月初六是什么星座 独一无二是什么生肖 75年属什么的生肖 尿拉不出来是什么原因
香菜不能和什么一起吃gangsutong.com 变色龙吃什么食物hcv7jop7ns0r.cn 查黄体酮做什么检查jinxinzhichuang.com 梦见自己在飞是什么征兆hcv8jop7ns4r.cn 类风湿阳性是什么意思hcv8jop3ns0r.cn
五毛是什么意思hcv9jop8ns2r.cn 如是什么意思hcv9jop1ns0r.cn 肌酐测定低是什么意思hcv8jop6ns7r.cn 希特勒为什么要杀犹太人tiangongnft.com 涤纶是什么面料优缺点hcv9jop8ns2r.cn
pray是什么意思hcv8jop8ns6r.cn 昙花一现是什么生肖hcv8jop6ns4r.cn 最机灵的动物是什么生肖aiwuzhiyu.com 吃什么利于排便hcv9jop5ns7r.cn 吃蒲公英有什么好处hcv9jop8ns0r.cn
犯了痔疮为什么老放屁hcv9jop2ns5r.cn 牙龈肿大是什么原因hcv7jop6ns1r.cn 狐媚子是什么意思xscnpatent.com 语素是什么hcv8jop4ns5r.cn 腿上有白点是什么原因hcv8jop3ns5r.cn
百度