1028:
these options. Setpoints may be installed which permit full speed execution of code that is not suspected to be faulty, and then stop at a point that is. Putting a setpoint immediately after the end of a program loop is a convenient way to evaluate repeating code. Watchpoints are commonly available, where execution can proceed until a particular variable changes, and catchpoints which cause the debugger to stop for certain kinds of program events, such as exceptions or the loading of a shared library.
1068:
execution time spent processing instructions within defined memory addresses (machine code programs) or certain program modules (high level language or compiled programs). If the program being debugged is shown to be spending an inordinate fraction of its execution time within traced areas, this could indicate misallocation of processor time caused by faulty program logic, or at least inefficient allocation of processor time that could benefit from optimization efforts.
658:
832:
1234:
not general-purpose designs: they are typically developed for a single task (or small range of tasks), and the platform is chosen specifically to optimize that application. Not only does this fact make life tough for embedded system developers, it also makes debugging and testing of these systems harder as well, since different debugging tools are needed for different platforms.
1027:
uses debugger tools which allow a program's execution to be processed one step at a time and to be paused to inspect or alter its state. Subroutines or function calls may typically be executed at full speed and paused again upon return to their caller, or themselves single stepped, or any mixture of
922:
the variable is assigned a value. As another example, some such tools perform strong type checking when the language does not require it. Thus, they are better at locating likely errors in code that is syntactically correct. But these tools have a reputation of false positives, where correct code is
1233:
In contrast to the general purpose computer software design environment, a primary characteristic of embedded environments is the sheer number of different platforms available to the developers (CPU architectures, vendors, operating systems, and their variants). Embedded systems are, by definition,
1111:
as follows: "There's one wolf in Alaska; how do you find it? First build a fence down the middle of the state, wait for the wolf to howl, determine which side of the fence it is on. Repeat process on that side only, until you get to the point where you can see the wolf." This is implemented e.g. in
917:
Both commercial and free tools exist for various languages; some claim to be able to detect hundreds of different problems. These tools can be extremely useful when checking very large source trees, where it is impractical to do code walk-throughs. A typical example of a problem detected would be a
1253:
In addition to the typical task of identifying bugs in the system, embedded system debugging also seeks to collect information about the operating states of the system that may then be used to analyze the system: to find ways to boost its performance or to optimize other important characteristics
1044:
is the act of watching (live or recorded) trace statements, or print statements, that indicate the flow of execution of a process and the data progression. Tracing can be done with specialized tools (like with GDB's trace) or by insertion of trace statements into the source code. The latter is
843:
Debugging ranges in complexity from fixing simple errors to performing lengthy and tiresome tasks of data collection, analysis, and scheduling updates. The debugging skill of the programmer can be a major factor in the ability to debug a problem, but the difficulty of software debugging varies
1078:
is the process of debugging a program running on a system different from the debugger. To start remote debugging, a debugger connects to a remote system over a communications link such as a local area network. The debugger can then control the execution of the program on the remote system and
1067:
is like tracing (above), but rather than following program execution one instruction or function at a time, follows program activity based on the overall amount of time spent by the processor/CPU executing particular segments of code. This is typically presented as a fraction of the program's
812:
in a system. Also, it is important to avoid the situation where a change might be more upsetting to users, long-term, than living with the known problem(s) (where the "cure would be worse than the disease"). Basing decisions of the acceptability of some anomalies can avoid a culture of a
1245:
and
Microchip's MPLAB-ICD (for in-circuit debugger). Two examples of research prototype tools are Aveksha and Flocklab. They all leverage a functionality available on low-cost embedded processors, an On-Chip Debug Module (OCDM), whose signals are exposed through a standard
1304:
which, if a debugger was detected, produced a message that said, "The tree of evil bears bitter fruit. Now trashing program disk.", after which it caused the floppy disk drive to emit alarming noises with the intent of scaring the user away from attempting it again.
817:. Considering the collateral issues, such as the cost-versus-benefit impact assessment, then broader debugging techniques will expand to determine the frequency of anomalies (how often the same "bugs" occur) to help assess their impact to the overall system.
1101:) of the crashed process. The dump of the process could be obtained automatically by the system (for example, when the process has terminated due to an unhandled exception), or by a programmer-inserted instruction, or manually by the interactive user.
914:. These tools look for a very specific set of known problems, some common and some rare, within the source code, concentrating more on the semantics (e.g. data flow) rather than the syntax, as compilers and interpreters do.
995:
when parsing a large source file. However, after simplification of the test case, only few lines from the original source file can be sufficient to reproduce the same crash. Simplification may be done manually using a
1139:
debugging tool; enabling reversible debugging/execution), which can be replayed and interactively debugged. Useful for remote debugging and debugging intermittent, non-deterministic, and other hard-to-reproduce
772:
As software and electronic systems have become generally more complex, the various common debugging techniques have expanded with more methods to detect anomalies, assess impact, and schedule
1152:) to understand what is happening during execution of a computer program; to allow users to interact with the program; to change the history if desired and to watch how the program responds.
571:
2409:
1237:
Despite the challenge of heterogeneity mentioned above, some debuggers have been developed commercially as well as research prototypes. Examples of commercial solutions come from
1379:
1004:, the programmer can try skipping some user interaction from the original problem description to check if the remaining actions are sufficient for causing the bug to occur.
525:
727:
in reference to airplane engine testing in a 1945 article in the
Journal of the Royal Aeronautical Society. An article in "Airforce" (June 1945 p. 50) refers to
2089:
1015:
can be used. In simple cases, tracing is just a few print statements which output the values of variables at particular points during the execution of the program.
1172:: There are techniques to track the cause effect chains in the computation. Those techniques can be tailored for specific bugs, such as null pointer dereferences.
492:
1426:
991:
After the bug is reproduced, the input of the program may need to be simplified to make it easier to debug. For example, a bug in a compiler can make it
564:
1405:
1000:
approach, in which the programmer attempts to remove some parts of original test case then checks if the problem still occurs. When debugging in a
334:
2065:
910:
482:
1007:
After the test case is sufficiently simplified, a programmer can use a debugger tool to examine program states (values of variables, plus the
2369:
2350:
2253:
1890:
1508:
976:
The debugging process normally begins with identifying the steps to reproduce the problem. This can be a non-trivial task, particularly with
692:, conflating the two meanings of bug (biological and defect), the story indicates that the term was used in the computer field at that time.
557:
457:
198:
2412: – results of a survey about embedded system test and debug, Byte Paradigm (archived from the original on January 12, 2012)
477:
1529:
1450:, Proceedings of the Royal Society of London. Series A, Mathematical and Physical Sciences, Vol. 206, No. 1087 (May 22, 1951), pp. 538-554
1616:
804:) would be cost-effective for the system, or perhaps a scheduled new release might render the change(s) unnecessary. Not all issues are
746:
515:
1061:
programming language. TRON stood for, "Trace On." TRON caused the line numbers of each BASIC command line to print as the program ran.
908:
In certain situations, general purpose software tools that are language specific in nature can be very useful. These take the form of
424:
188:
2331:
2312:
2293:
2272:
2234:
2213:
2191:
2136:
2030:
1989:
1720:
1600:
291:
1315:
636:
414:
409:
165:
1703:
Bond, Michael D.; Nethercote, Nicholas; Kent, Stephen W.; Guyer, Samuel Z.; McKinley, Kathryn S. (2007). "Tracking bad apples".
1250:. They are benchmarked based on how much change to the application is needed and the rate of events that they can keep up with.
813:"zero-defects" mandate, where people might be tempted to deny the existence of problems so that the result would appear as zero
1922:
874:
543:
1951:
1463:
960:(ICEs) are often used, alone or in combination. An ICE may perform many of the typical software debugger's tasks on low-level
688:
stuck in a relay that impeded operation and wrote in a log book "First actual case of a bug being found". Although probably a
761:
434:
147:
127:
1166: – a technique of isolating failure within the test using progressive inlining of parts of the failing test.
734:
The seminal article by Gill in 1951 is the earliest in-depth discussion of programming errors, but it does not use the term
1705:
Proceedings of the 22nd annual ACM SIGPLAN conference on Object oriented programming systems and applications - OOPSLA '07
344:
233:
223:
173:
2379:
2096:
1057:
function in C. This kind of debugging was turned on by the command TRON in the original versions of the novice-oriented
997:
520:
248:
213:
64:
2156:
2013:
Lim, Roman; Ferrari, Federico; Zimmerling, Marco; Walser, Christoph; Sommer, Philipp; Beutel, Jan (2013). "FlockLab".
1131:
878:
339:
311:
1325:
462:
306:
193:
183:
122:
1108:
753:
is first used in three papers from 1952 ACM National
Meetings. Two of the three use the term in quotation marks.
716:
228:
208:
1443:
1124:
1001:
890:
369:
238:
218:
1262:
Anti-debugging is "the implementation of one or more techniques within computer code that hinders attempts at
639:. Many programming languages and software development tools also offer programs to aid in debugging, known as
497:
379:
258:
132:
1116:
805:
780:, to avoid the words "error" and "defect" or "bug" where there might be an implication that all so-called
624:
439:
349:
301:
243:
31:
1401:
2201:
2183:
Debugging: The Nine
Indispensable Rules for Finding Even the Most Elusive Software and Hardware Problems
1345:
1144:
859:
700:
296:
263:
79:
69:
1492:
Howard B. Demuth, John B. Jackson, Edmund Klein, N. Metropolis, Walter
Orvedahl, James H. Richardson,
2055:
1238:
1189:
1183:
1089:. Related techniques often include various tracing techniques like examining log files, outputting a
845:
715:
at UC Berkeley, dated
October 27, 1944, regarding the recruitment of additional technical staff. The
677:
359:
203:
137:
104:
84:
45:
1972:
Tancreti, Matthew; Hossain, Mohammad Sajjad; Bagchi, Saurabh; Raghunathan, Vijay (2011). "Aveksha".
1822:
1263:
1221:
957:
593:
354:
273:
99:
1505:
1107:
Edward Gauss described this simple but very useful and now famous algorithm in a 1982 article for
2425:
2036:
1995:
1896:
1873:
Tan, Shin Hwei; Roychoudhury, Abhik (2015). "relifix: Automated repair of software regressions".
1855:
1800:
1765:
1726:
1685:
1573:
1375:
1040:
1012:
977:
882:
472:
2404:
1635:
1525:
2365:
2346:
2327:
2308:
2289:
2268:
2249:
2230:
2209:
2187:
2132:
2026:
1985:
1886:
1716:
1677:
1596:
1420:
1330:
1320:
1213:
1193:
1086:
992:
933:
898:
894:
793:
708:
652:
628:
601:
2015:
Proceedings of the 12th international conference on
Information processing in sensor networks
1620:
889:
that make real sources of erratic behaviour easier to spot. In programming languages such as
2120:
2018:
1977:
1878:
1847:
1837:
1792:
1757:
1708:
1669:
1563:
1340:
1287:
Modified code: check for code modifications made by a debugger handling software breakpoints
1217:
985:
902:
809:
429:
392:
374:
364:
89:
1496:
doi=10.1145/800259.808982, Proceedings of the 1952 ACM national meeting (Toronto), p. 13-16
1512:
1467:
1447:
1355:
1267:
1242:
1156:
925:
712:
681:
657:
316:
268:
152:
74:
2090:"Software Protection through Anti-Debugging Michael N Gagnon, Stephen Taylor, Anup Ghosh"
776:
or full updates to a system. The words "anomaly" and "discrepancy" can be used, as being
760:
was a common-enough term to be mentioned in passing without explanation on page 1 of the
1284:
Process and thread blocks: check whether process and thread blocks have been manipulated
1274:
to complicate its detection and elimination. Techniques used in anti-debugging include:
2181:
1301:
1149:
1136:
1113:
953:
901:, and it is often difficult to see where the initial problem happened. In those cases,
836:
831:
773:
1660:
Zeller, Andreas (2002-11-01). "Isolating cause-effect chains from computer programs".
1135:
is the technique of creating a program execution recording (e.g. using
Mozilla's free
2419:
2398:
2283:
2224:
2125:
941:
886:
670:
59:
1999:
1914:
1900:
1859:
1769:
1689:
844:
greatly with the complexity of the system, and also depends, to some extent, on the
835:
Debugging on video game consoles is usually done with special hardware such as this
1804:
1730:
1551:
1480:
1460:
1335:
1200:
without the intervention of a human programmer. It is also commonly referred to as
1197:
949:
616:
142:
2040:
1577:
2395: – in-depth articles on analyzing and finding bugs in crash dumps
1350:
1266:
or debugging a target process". It is actively used by recognized publishers in
1094:
632:
612:
585:
1617:"Kent Beck, Hit 'em High, Hit 'em Low: Regression Testing and the Saff Squeeze"
1290:
Hardware- and register-based: check for hardware breakpoints and CPU registers
1090:
1008:
863:
855:
699:
was used in aeronautics before entering the world of computers. A letter from
597:
1842:
1681:
2022:
1981:
1796:
1761:
1712:
1493:
1483:, Proceedings of the 1952 ACM national meeting (Pittsburgh), p. 91-95, 1952.
1098:
981:
777:
689:
2244:
Grötker, Thorsten; Holtmann, Ulrich; Keding, Holger; Wloka, Markus (2012).
2152:
1470:, Proceedings of the 1952 ACM national meeting (Pittsburgh), p 29-32, 1952.
1212:. The typical goal of such techniques is to automatically generate correct
1974:
Proceedings of the 9th ACM Conference on
Embedded Networked Sensor Systems
1673:
1568:
1293:
Timing and latency: check the time taken for the execution of instructions
2060:
1882:
1278:
API-based: check for the existence of a debugger using system information
965:
961:
945:
850:
826:
661:
A computer log entry from the Mark II, with a moth taped to the page
640:
608:
467:
419:
404:
399:
1875:
2015 IEEE/ACM 37th IEEE International
Conference on Software Engineering
1851:
1148:
is the process of stepping back in time through source code (e.g. using
17:
1271:
988:
and usage history can also make it difficult to reproduce the problem.
620:
2206:
Software Exorcism: A Handbook for Debugging and Optimizing Legacy Code
1160: – a technique of automating test case simplification.
1440:
1054:
178:
673:
wrote "little faults and difficulties" in his inventions as "Bugs".
1816:
1814:
2362:
Why Programs Fail, Second Edition: A Guide to Systematic Debugging
1254:(e.g. energy consumption, reliability, real-time response, etc.).
1058:
830:
656:
253:
2410:
Embedded Systems test and debug – about digital input generation
1481:
Solution of systems of linear inequalities on a digital computer
1300:
An early example of anti-debugging existed in early versions of
1247:
937:
704:
685:
487:
2392:
1281:
Exception-based: check to see if exceptions are interfered with
1011:) and track down the origin of the problem(s). Alternatively,
1943:
881:, make debugging easier, because they have features such as
684:
computer at Harvard University, her associates discovered a
1821:
Gazzola, Luca; Micucci, Daniela; Mariani, Leonardo (2019).
669:, in the sense of defect, dates back at least to 1878 when
870:
can also refer to the person who is doing the debugging.
1976:. SenSys '11. New York, NY, USA: ACM. pp. 288–301.
2401: – how to improve your debugging skills
2017:. IPSN '13. New York, NY, USA: ACM. pp. 153–166.
1783:
Harman, Mark (2010). "Automated patching techniques".
1552:"Pracniques: The 'Wolf Fence' Algorithm for Debugging"
1441:
The Diagnosis of Mistakes in Programmes on the EDSAC
1123:, which uses the above algorithm to determine which
2265:
Debugging by Thinking: A Multidisciplinary Approach
2246:The Developer's Guide to Debugging, Second Edition
2124:
1593:Why Programs Fail: A Guide to Systematic Debugging
1744:Rinard, Martin C. (2008). "Technical perspective
1085:is debugging of the program after it has already
796:can be made to determine if changes to remove an
2382:, IEEE Annals of the History of Computing, 1998.
854:. Debuggers are software tools which enable the
711:at Los Alamos, used the term in a letter to Dr.
565:
8:
2405:Plug-in Based Debugging For Embedded Systems
2084:
2082:
30:"Debug" redirects here. For other uses, see
848:(s) used and the available tools, such as
792:must be fixed (at all costs). Instead, an
572:
558:
36:
1841:
1830:IEEE Transactions on Software Engineering
1567:
932:For debugging electronic hardware (e.g.,
897:, bugs may cause silent problems such as
2322:Telles, Matthew A.; Hsieh, Yuan (2001).
866:, and change values in memory. The term
2343:Memory Dump Analysis Anthology Volume 1
1382:from the original on September 18, 2019
1367:
936:) as well as low-level software (e.g.,
862:of a program, stop it, restart it, set
676:A popular story from the 1940s is from
44:
2223:Ford, Ann R.; Teorey, Toby J. (2002).
1662:ACM SIGSOFT Software Engineering Notes
1425:: CS1 maint: archived copy as title (
1418:
526:Electrical and electronics engineering
27:Fixing defects in an engineered system
1823:"Automatic Software Repair: A Survey"
1079:retrieve information about its state.
7:
1944:"Debugger and real-time trace tools"
1915:"SuperTrace Probe hardware debugger"
1634:Rainsberger, J.B. (28 March 2022).
839:debug unit intended for developers.
1506:The Compatible Time-Sharing System
1461:Evolution of automatic computation
25:
2380:Stalking the Elusive Computer Bug
1296:Detecting and penalizing debugger
923:flagged as dubious. The old Unix
918:variable dereference that occurs
452:Standards and bodies of knowledge
2056:"Anti-Debugging Series – Part I"
1316:Assertion (software development)
1182:This section is an excerpt from
875:high-level programming languages
653:Bug (engineering) § History
611:, debugging tactics can involve
2159:from the original on 2013-05-14
2068:from the original on 2016-10-19
1954:from the original on 2022-01-25
1925:from the original on 2017-12-01
1532:from the original on 2019-12-17
1408:from the original on 2019-11-21
544:Outline of software development
1229:Debugging for embedded systems
1093:on the crash, and analysis of
592:is the process of finding the
1:
2288:. John Wiley & Sons Inc.
2153:"Microsoft Word for DOS 1.15"
2054:Shields, Tyler (2008-12-02).
1270:schemas, but is also used by
929:program is an early example.
749:'s digital library, the term
680:. While she was working on a
2393:Crash dump analysis patterns
1127:introduced a particular bug.
2399:The Essentials of Debugging
2285:The Art of Software Testing
2263:Metzger, Robert C. (2003).
1132:Record and replay debugging
2442:
2282:Myers, Glenford J (2004).
2226:Practical Debugging in C++
1877:. IEEE. pp. 471–482.
1202:automatic patch generation
1181:
984:for example. The specific
911:static code analysis tools
824:
650:
307:Software quality assurance
29:
2341:Vostokov, Dmitry (2008).
1785:Communications of the ACM
1750:Communications of the ACM
1556:Communications of the ACM
1109:Communications of the ACM
717:Oxford English Dictionary
2360:Zeller, Andreas (2009).
2324:The Science of Debugging
2180:Agans, David J. (2002).
1843:10.1109/TSE.2017.2755013
1591:Zeller, Andreas (2005).
1210:automatic program repair
1053:, due to the use of the
292:Configuration management
2378:Peggy Aldrich Kidwell,
2023:10.1145/2461381.2461402
1982:10.1145/2070942.2070972
1797:10.1145/1735223.1735248
1762:10.1145/1409360.1409381
1713:10.1145/1297027.1297057
1459:Robert V. D. Campbell,
1376:"InfoWorld Oct 5, 1981"
1105:"Wolf fence" algorithm:
600:and possible fixes for
516:Artificial intelligence
2326:. The Coriolis Group.
2305:Debugging Applications
2303:Robbins, John (2000).
2131:. Wiley. p. 684.
1526:"Postmortem Debugging"
1117:version control system
948:, instruments such as
840:
662:
440:Infrastructure as code
286:Supporting disciplines
32:Debug (disambiguation)
1674:10.1145/605466.605468
1569:10.1145/358690.358695
1346:Time travel debugging
1216:to eliminate bugs in
1145:Time travel debugging
1083:Post-mortem debugging
1025:Interactive debugging
905:tools may be needed.
834:
701:J. Robert Oppenheimer
660:
297:Deployment management
2127:Security Engineering
1883:10.1109/ICSE.2015.65
1550:E. J. Gauss (1982).
1515:, M.I.T. Press, 1963
1239:Green Hills Software
1206:automatic bug repair
1190:Automatic bug-fixing
1184:Automatic bug fixing
1177:Automatic bug fixing
958:in-circuit emulators
846:programming language
695:Similarly, the term
678:Admiral Grace Hopper
623:, monitoring at the
117:Paradigms and models
46:Software development
2364:. Morgan Kaufmann.
2307:. Microsoft Press.
1595:. Morgan Kaufmann.
1264:reverse engineering
1222:software regression
731:aircraft cameras.
40:Part of a series on
1948:www.lauterbach.com
1640:The Code Whisperer
1636:"The Saff Squeeze"
1511:2012-05-27 at the
1466:2019-09-18 at the
1446:2020-03-06 at the
1378:. 5 October 1981.
1326:Magic debug values
1170:Causality tracking
998:divide-and-conquer
978:parallel processes
883:exception handling
841:
778:more neutral terms
703:, director of the
663:
435:Release automation
312:Project management
2371:978-0-1237-4515-6
2352:978-0-9558328-0-2
2267:. Digital Press.
2255:978-1-4701-8552-7
2229:. Prentice Hall.
1892:978-1-4799-1934-5
1748:program errors".
1331:Shotgun debugging
1321:Debugging pattern
1218:software programs
1192:is the automatic
1150:Undo LiveRecorder
1045:sometimes called
972:Debugging process
934:computer hardware
899:memory corruption
794:impact assessment
709:Manhattan Project
621:log file analysis
582:
581:
473:ISO/IEC standards
16:(Redirected from
2433:
2375:
2356:
2337:
2318:
2299:
2278:
2259:
2240:
2219:
2197:
2168:
2167:
2165:
2164:
2149:
2143:
2142:
2130:
2121:Ross J. Anderson
2117:
2111:
2110:
2108:
2107:
2101:
2095:. Archived from
2094:
2086:
2077:
2076:
2074:
2073:
2051:
2045:
2044:
2010:
2004:
2003:
1969:
1963:
1962:
1960:
1959:
1940:
1934:
1933:
1931:
1930:
1911:
1905:
1904:
1870:
1864:
1863:
1845:
1827:
1818:
1809:
1808:
1780:
1774:
1773:
1741:
1735:
1734:
1700:
1694:
1693:
1657:
1651:
1650:
1648:
1646:
1631:
1625:
1624:
1619:. Archived from
1613:
1607:
1606:
1588:
1582:
1581:
1571:
1547:
1541:
1540:
1538:
1537:
1522:
1516:
1503:
1497:
1490:
1484:
1477:
1471:
1457:
1451:
1437:
1431:
1430:
1424:
1416:
1414:
1413:
1398:
1392:
1391:
1389:
1387:
1372:
1341:Software testing
1220:without causing
1076:
1075:
1074:Remote debugging
1065:Activity tracing
1051:
1050:
1049:printf debugging
1036:
1035:
986:user environment
810:mission-critical
774:software patches
574:
567:
560:
521:Computer science
430:Build automation
37:
21:
2441:
2440:
2436:
2435:
2434:
2432:
2431:
2430:
2416:
2415:
2389:
2372:
2359:
2353:
2340:
2334:
2321:
2315:
2302:
2296:
2281:
2275:
2262:
2256:
2248:. Createspace.
2243:
2237:
2222:
2216:
2200:
2194:
2179:
2176:
2174:Further reading
2171:
2162:
2160:
2151:
2150:
2146:
2139:
2119:
2118:
2114:
2105:
2103:
2099:
2092:
2088:
2087:
2080:
2071:
2069:
2053:
2052:
2048:
2033:
2012:
2011:
2007:
1992:
1971:
1970:
1966:
1957:
1955:
1942:
1941:
1937:
1928:
1926:
1913:
1912:
1908:
1893:
1872:
1871:
1867:
1825:
1820:
1819:
1812:
1782:
1781:
1777:
1743:
1742:
1738:
1723:
1707:. p. 405.
1702:
1701:
1697:
1659:
1658:
1654:
1644:
1642:
1633:
1632:
1628:
1615:
1614:
1610:
1603:
1590:
1589:
1585:
1549:
1548:
1544:
1535:
1533:
1524:
1523:
1519:
1513:Wayback Machine
1504:
1500:
1491:
1487:
1478:
1474:
1468:Wayback Machine
1458:
1454:
1448:Wayback Machine
1438:
1434:
1417:
1411:
1409:
1402:"Archived copy"
1400:
1399:
1395:
1385:
1383:
1374:
1373:
1369:
1365:
1360:
1356:Troubleshooting
1311:
1268:copy-protection
1260:
1243:Lauterbach GmbH
1231:
1226:
1225:
1187:
1179:
1157:Delta Debugging
1119:as the command
1073:
1072:
1048:
1047:
1034:Print debugging
1033:
1032:
1021:
974:
954:logic analyzers
903:memory debugger
858:to monitor the
829:
823:
806:safety-critical
770:
713:Ernest Lawrence
655:
649:
578:
549:
548:
539:
531:
530:
511:
503:
502:
453:
445:
444:
395:
385:
384:
330:
322:
321:
317:User experience
287:
279:
278:
169:
158:
157:
118:
110:
109:
55:
54:Core activities
35:
28:
23:
22:
15:
12:
11:
5:
2439:
2437:
2429:
2428:
2418:
2417:
2414:
2413:
2407:
2402:
2396:
2388:
2387:External links
2385:
2384:
2383:
2376:
2370:
2357:
2351:
2338:
2332:
2319:
2313:
2300:
2294:
2279:
2273:
2260:
2254:
2241:
2235:
2220:
2214:
2198:
2192:
2175:
2172:
2170:
2169:
2144:
2137:
2123:(2001-03-23).
2112:
2078:
2046:
2031:
2005:
1990:
1964:
1935:
1906:
1891:
1865:
1810:
1775:
1736:
1721:
1695:
1652:
1626:
1623:on 2012-03-11.
1608:
1601:
1583:
1542:
1517:
1498:
1485:
1472:
1452:
1432:
1393:
1366:
1364:
1361:
1359:
1358:
1353:
1348:
1343:
1338:
1333:
1328:
1323:
1318:
1312:
1310:
1307:
1302:Microsoft Word
1298:
1297:
1294:
1291:
1288:
1285:
1282:
1279:
1259:
1258:Anti-debugging
1256:
1248:JTAG interface
1230:
1227:
1188:
1180:
1178:
1175:
1174:
1173:
1167:
1161:
1153:
1141:
1128:
1102:
1080:
1069:
1062:
1029:
1020:
1017:
973:
970:
942:device drivers
825:Main article:
822:
819:
769:
766:
723:uses the term
648:
645:
580:
579:
577:
576:
569:
562:
554:
551:
550:
547:
546:
540:
537:
536:
533:
532:
529:
528:
523:
518:
512:
509:
508:
505:
504:
501:
500:
495:
490:
485:
480:
475:
470:
465:
463:IEEE standards
460:
454:
451:
450:
447:
446:
443:
442:
437:
432:
427:
422:
417:
412:
407:
402:
396:
391:
390:
387:
386:
383:
382:
377:
372:
367:
362:
357:
352:
347:
342:
337:
331:
328:
327:
324:
323:
320:
319:
314:
309:
304:
299:
294:
288:
285:
284:
281:
280:
277:
276:
271:
266:
261:
256:
251:
246:
241:
236:
231:
226:
221:
216:
211:
206:
201:
196:
191:
186:
181:
176:
170:
168:and frameworks
164:
163:
160:
159:
156:
155:
150:
145:
140:
135:
130:
125:
119:
116:
115:
112:
111:
108:
107:
102:
97:
92:
87:
82:
77:
72:
67:
62:
56:
53:
52:
49:
48:
42:
41:
26:
24:
14:
13:
10:
9:
6:
4:
3:
2:
2438:
2427:
2424:
2423:
2421:
2411:
2408:
2406:
2403:
2400:
2397:
2394:
2391:
2390:
2386:
2381:
2377:
2373:
2367:
2363:
2358:
2354:
2348:
2344:
2339:
2335:
2333:1-57610-917-8
2329:
2325:
2320:
2316:
2314:0-7356-0886-5
2310:
2306:
2301:
2297:
2295:0-471-04328-1
2291:
2287:
2286:
2280:
2276:
2274:1-55558-307-5
2270:
2266:
2261:
2257:
2251:
2247:
2242:
2238:
2236:0-13-065394-2
2232:
2228:
2227:
2221:
2217:
2215:1-59059-234-4
2211:
2207:
2203:
2202:Blunden, Bill
2199:
2195:
2193:0-8144-7168-4
2189:
2185:
2184:
2178:
2177:
2173:
2158:
2154:
2148:
2145:
2140:
2138:0-471-38922-6
2134:
2129:
2128:
2122:
2116:
2113:
2102:on 2011-10-01
2098:
2091:
2085:
2083:
2079:
2067:
2063:
2062:
2057:
2050:
2047:
2042:
2038:
2034:
2032:9781450319591
2028:
2024:
2020:
2016:
2009:
2006:
2001:
1997:
1993:
1991:9781450307185
1987:
1983:
1979:
1975:
1968:
1965:
1953:
1949:
1945:
1939:
1936:
1924:
1920:
1916:
1910:
1907:
1902:
1898:
1894:
1888:
1884:
1880:
1876:
1869:
1866:
1861:
1857:
1853:
1849:
1844:
1839:
1835:
1831:
1824:
1817:
1815:
1811:
1806:
1802:
1798:
1794:
1790:
1786:
1779:
1776:
1771:
1767:
1763:
1759:
1755:
1751:
1747:
1740:
1737:
1732:
1728:
1724:
1722:9781595937865
1718:
1714:
1710:
1706:
1699:
1696:
1691:
1687:
1683:
1679:
1675:
1671:
1667:
1663:
1656:
1653:
1641:
1637:
1630:
1627:
1622:
1618:
1612:
1609:
1604:
1602:1-55860-866-4
1598:
1594:
1587:
1584:
1579:
1575:
1570:
1565:
1561:
1557:
1553:
1546:
1543:
1531:
1527:
1521:
1518:
1514:
1510:
1507:
1502:
1499:
1495:
1489:
1486:
1482:
1476:
1473:
1469:
1465:
1462:
1456:
1453:
1449:
1445:
1442:
1436:
1433:
1428:
1422:
1407:
1403:
1397:
1394:
1381:
1377:
1371:
1368:
1362:
1357:
1354:
1352:
1349:
1347:
1344:
1342:
1339:
1337:
1334:
1332:
1329:
1327:
1324:
1322:
1319:
1317:
1314:
1313:
1308:
1306:
1303:
1295:
1292:
1289:
1286:
1283:
1280:
1277:
1276:
1275:
1273:
1269:
1265:
1257:
1255:
1251:
1249:
1244:
1240:
1235:
1228:
1223:
1219:
1215:
1211:
1207:
1203:
1199:
1198:software bugs
1195:
1191:
1185:
1176:
1171:
1168:
1165:
1162:
1159:
1158:
1154:
1151:
1147:
1146:
1142:
1138:
1134:
1133:
1129:
1126:
1122:
1118:
1115:
1110:
1106:
1103:
1100:
1096:
1092:
1088:
1084:
1081:
1077:
1070:
1066:
1063:
1060:
1056:
1052:
1043:
1042:
1037:
1030:
1026:
1023:
1022:
1018:
1016:
1014:
1010:
1005:
1003:
999:
994:
989:
987:
983:
979:
971:
969:
967:
963:
959:
955:
951:
950:oscilloscopes
947:
943:
939:
935:
930:
928:
927:
921:
915:
913:
912:
906:
904:
900:
896:
892:
888:
887:type checking
884:
880:
876:
871:
869:
865:
861:
857:
853:
852:
847:
838:
833:
828:
820:
818:
816:
811:
807:
803:
799:
795:
791:
787:
783:
779:
775:
767:
765:
763:
759:
754:
752:
748:
743:
741:
737:
732:
730:
726:
722:
718:
714:
710:
706:
702:
698:
693:
691:
687:
683:
679:
674:
672:
671:Thomas Edison
668:
659:
654:
646:
644:
642:
638:
634:
630:
626:
622:
618:
614:
610:
605:
603:
599:
595:
591:
587:
575:
570:
568:
563:
561:
556:
555:
553:
552:
545:
542:
541:
535:
534:
527:
524:
522:
519:
517:
514:
513:
507:
506:
499:
496:
494:
491:
489:
486:
484:
481:
479:
476:
474:
471:
469:
466:
464:
461:
459:
456:
455:
449:
448:
441:
438:
436:
433:
431:
428:
426:
423:
421:
418:
416:
413:
411:
408:
406:
403:
401:
398:
397:
394:
389:
388:
381:
378:
376:
373:
371:
368:
366:
363:
361:
358:
356:
353:
351:
348:
346:
343:
341:
338:
336:
333:
332:
326:
325:
318:
315:
313:
310:
308:
305:
303:
302:Documentation
300:
298:
295:
293:
290:
289:
283:
282:
275:
272:
270:
267:
265:
262:
260:
257:
255:
252:
250:
247:
245:
242:
240:
237:
235:
232:
230:
227:
225:
222:
220:
217:
215:
212:
210:
207:
205:
202:
200:
197:
195:
192:
190:
187:
185:
182:
180:
177:
175:
172:
171:
167:
166:Methodologies
162:
161:
154:
151:
149:
146:
144:
141:
139:
136:
134:
131:
129:
126:
124:
121:
120:
114:
113:
106:
103:
101:
98:
96:
93:
91:
88:
86:
83:
81:
78:
76:
73:
71:
68:
66:
63:
61:
60:Data modeling
58:
57:
51:
50:
47:
43:
39:
38:
33:
19:
2361:
2345:. OpenTask.
2342:
2323:
2304:
2284:
2264:
2245:
2225:
2205:
2182:
2161:. Retrieved
2147:
2126:
2115:
2104:. Retrieved
2097:the original
2070:. Retrieved
2059:
2049:
2014:
2008:
1973:
1967:
1956:. Retrieved
1947:
1938:
1927:. Retrieved
1918:
1909:
1874:
1868:
1852:10281/184798
1836:(1): 34–67.
1833:
1829:
1788:
1784:
1778:
1753:
1749:
1745:
1739:
1704:
1698:
1665:
1661:
1655:
1643:. Retrieved
1639:
1629:
1621:the original
1611:
1592:
1586:
1559:
1555:
1545:
1534:. Retrieved
1520:
1501:
1488:
1479:Alex Orden,
1475:
1455:
1435:
1410:. Retrieved
1396:
1384:. Retrieved
1370:
1336:Software bug
1299:
1261:
1252:
1236:
1232:
1209:
1205:
1201:
1169:
1164:Saff Squeeze
1163:
1155:
1143:
1130:
1120:
1104:
1082:
1071:
1064:
1046:
1039:
1031:
1024:
1006:
990:
975:
931:
924:
919:
916:
909:
907:
872:
867:
849:
842:
814:
801:
797:
789:
785:
781:
771:
757:
755:
750:
744:
739:
735:
733:
728:
724:
720:
707:atomic bomb
696:
694:
675:
666:
664:
633:memory dumps
617:control flow
606:
589:
583:
420:UML Modeling
415:GUI designer
94:
80:Construction
70:Requirements
1919:www.ghs.com
1668:(6): 1–10.
1562:(11): 780.
1351:Trace table
1095:memory dump
873:Generally,
864:breakpoints
802:discrepancy
625:application
615:debugging,
613:interactive
598:workarounds
586:engineering
138:Prototyping
133:Incremental
105:Maintenance
85:Engineering
2208:. APress.
2186:. AMACOM.
2163:2013-06-22
2106:2010-10-25
2072:2009-03-17
1958:2020-06-05
1929:2017-11-25
1791:(5): 108.
1756:(12): 86.
1536:2019-12-17
1412:2019-12-17
1363:References
1121:git bisect
1091:call stack
1019:Techniques
1009:call stack
982:Heisenbugs
877:, such as
856:programmer
719:entry for
651:See also:
619:analysis,
594:root cause
510:Glossaries
100:Deployment
2426:Debugging
1682:0163-5948
1439:S. Gill,
1099:core dump
980:and some
860:execution
851:debuggers
758:debugging
751:debugging
740:debugging
729:debugging
725:debugging
697:debugging
665:The term
647:Etymology
641:debuggers
637:profiling
590:debugging
329:Practices
153:Waterfall
128:Cleanroom
95:Debugging
65:Processes
2420:Category
2204:(2003).
2157:Archived
2066:Archived
2061:Veracode
2000:14769602
1952:Archived
1923:Archived
1901:17125466
1860:57764123
1770:28629846
1746:Patching
1690:12098165
1645:28 March
1530:Archived
1509:Archived
1464:Archived
1444:Archived
1421:cite web
1406:Archived
1386:July 17,
1380:Archived
1309:See also
1140:defects.
966:firmware
962:software
946:firmware
895:assembly
868:debugger
827:Debugger
764:manual.
756:By 1963
609:software
538:Outlines
468:ISO 9001
410:Profiler
405:Debugger
400:Compiler
375:Stand-up
18:Debugged
1805:9729944
1731:2832749
1272:malware
1214:patches
1087:crashed
1041:tracing
1013:tracing
815:defects
798:anomaly
786:defects
745:In the
682:Mark II
631:level,
596:of and
209:Lean SD
148:V model
90:Testing
2368:
2349:
2330:
2311:
2292:
2271:
2252:
2233:
2212:
2190:
2135:
2041:447045
2039:
2029:
1998:
1988:
1899:
1889:
1858:
1803:
1768:
1729:
1719:
1688:
1680:
1599:
1578:672811
1576:
1494:MANIAC
1194:repair
1125:commit
1055:printf
944:) and
938:BIOSes
920:before
782:errors
635:, and
629:system
483:SWEBOK
204:Kanban
179:DevOps
143:Spiral
75:Design
2100:(PDF)
2093:(PDF)
2037:S2CID
1996:S2CID
1897:S2CID
1856:S2CID
1826:(PDF)
1801:S2CID
1766:S2CID
1727:S2CID
1686:S2CID
1574:S2CID
1208:, or
1059:BASIC
993:crash
956:, or
821:Tools
768:Scope
721:debug
478:PMBOK
393:Tools
254:SEMAT
249:Scrum
123:Agile
2366:ISBN
2347:ISBN
2328:ISBN
2309:ISBN
2290:ISBN
2269:ISBN
2250:ISBN
2231:ISBN
2210:ISBN
2188:ISBN
2133:ISBN
2027:ISBN
1986:ISBN
1887:ISBN
1717:ISBN
1678:ISSN
1647:2022
1597:ISBN
1427:link
1388:2019
1112:the
1097:(or
964:and
926:lint
885:and
879:Java
837:Xbox
800:(or
790:bugs
762:CTSS
705:WWII
690:joke
686:moth
607:For
602:bugs
493:IREB
488:ITIL
458:CMMI
335:ATDD
244:SAFe
214:LeSS
189:DSDM
2019:doi
1978:doi
1879:doi
1848:hdl
1838:doi
1793:doi
1758:doi
1709:doi
1670:doi
1564:doi
1196:of
1114:Git
1038:or
1002:GUI
893:or
808:or
788:or
747:ACM
738:or
736:bug
667:bug
627:or
584:In
498:OMG
425:IDE
380:TDD
370:SBE
360:DDD
345:CCO
340:BDD
264:TSP
259:TDD
239:RUP
234:RAD
229:PSP
224:MSF
219:MDD
199:IID
194:FDD
184:DAD
174:ASD
2422::
2155:.
2081:^
2064:.
2058:.
2035:.
2025:.
1994:.
1984:.
1950:.
1946:.
1921:.
1917:.
1895:.
1885:.
1854:.
1846:.
1834:45
1832:.
1828:.
1813:^
1799:.
1789:53
1787:.
1764:.
1754:51
1752:.
1725:.
1715:.
1684:.
1676:.
1666:27
1664:.
1638:.
1572:.
1560:25
1558:.
1554:.
1528:.
1423:}}
1419:{{
1404:.
1241:,
1204:,
1137:rr
968:.
952:,
940:,
784:,
742:.
643:.
604:.
588:,
365:PP
355:CD
350:CI
274:XP
269:UP
2374:.
2355:.
2336:.
2317:.
2298:.
2277:.
2258:.
2239:.
2218:.
2196:.
2166:.
2141:.
2109:.
2075:.
2043:.
2021::
2002:.
1980::
1961:.
1932:.
1903:.
1881::
1862:.
1850::
1840::
1807:.
1795::
1772:.
1760::
1733:.
1711::
1692:.
1672::
1649:.
1605:.
1580:.
1566::
1539:.
1429:)
1415:.
1390:.
1224:.
1186:.
891:C
573:e
566:t
559:v
34:.
20:)
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.