Talk:Debugging

JTAG, microcontrollers
There should be a mention of e.g. JTAG -interface. Perhaps a connection to microcontrollers and such also. --Korppi 01:23, 7 November 2005 (UTC)

Illustration
The illustration should really be C or C++ code, not html. Minor point but that's the geek in me. Nils Jeppe 10:12, 13 March 2006 (UTC)

I agree, and also, why is it simply a picture of code with syntax highlighting? How about showing a picture of an actual debugger running? Perhaps GDB?

I also agree and I have removed it. Something like a command line debugger stepping through a program would be much more relevant. --Avochelm 04:01, 10 August 2006 (UTC)

Origin
The word debugging and the word bug are not the same.

Some time ago I added a reference in the "origin" section of this article with the first definition of the word debugging by Myers in 1974. I have not seen any references to the words debug or debugging that are earlier than that. Does anyone know of one?

There are much earlier references to the word bug - the famous Admiral Hopper story in the 1940s and a much earlier reference by Edison in 1878. Fine, but neither reference uses the word debugging so surely they belong in the "Computer bug" article not in this article. Any comments?

Neilm 11:38, 18 May 2006 (UTC)


 * I noticed the edit to the article and revised it before I saw this comment. I noticed the same thing you did.  Hopefully my edit is close to what you would have done.  Feel free to tweak my tweak. ;^) wrp103 (Bill Pringle) 12:55, 18 May 2006 (UTC)


 * Thank you, your edits have made this section into one with a much better NPOV. I did tweak it, but just for minor clarification. Neilm 20:10, 18 May 2006 (UTC)

Tools (2nd paragraph)
It is not true that exception handling makes debugging easier. And it is not true, that for example C++ is easier to debug than C because of the existance of exceptions.--09:09, 13 July 2006 (UTC)
 * If you have exception handling, you can automatically print out valuable information any time an error occurs. Without it, you have to insert such print outs before the error occurs, which means you have to insert a lot of statements or wait until one occurs and then add the statements (or figure it out from the nature of the error). wrp103 (Bill Pringle) 10:30, 13 July 2006 (UTC)

Wikipedia is not a handbook
The latter part of the article seems to be a series of debugging tips and instructions, addressed at the reader. That's WP:NOT what wikipedia's about. --대조 | Talk 10:57, 25 October 2006 (UTC)
 * I already moved this part to Wikibooks. Dekart (talk) 08:15, 5 April 2008 (UTC)

Debugging is tiring?
"Debugging is, in general, a cumbersome and tiring task [...]"

This is nonsense. Debugging is neither unwieldy nor inelegant (these are the meanings of "cumbersome") and neither does it necessarily make it tired. Perhaps the poster meant "a time-consuming and tiresome task". I'll change the text accordingly. &mdash; Paul G (talk) 16:41, 11 September 2008 (UTC)

Pros to anti-debugging?
It would be good to have some reasons why someone would want to hinder debugging a program, and perhaps a link to code obfuscation. David Souther (talk) 18:38, 24 June 2009 (UTC)
 * To protect your programs from reverse engineering. Darkaero (talk) 21:51, 16 February 2011 (UTC)

Objectivity, not editorializing.
We must strive to be factual and objective, and follow all guidelines, when possible. "Easy" is purely objective, and thus cannot be seen as "factual". The editorializing under the "Tools" section is being removed. GuavaSquash (talk) 05:00, 4 July 2009 (UTC)
 * That was vandalism rather than editorializing. --Cybercobra (talk) 05:46, 4 July 2009 (UTC)

Newer Debugging Processes
Debugging functions (grouped lines of code) is problematic because the side-effect of any line can cause multiple other side effects. At exit it will be unknowable which line is offending.

Newer debugging process can step through functions and displays or edit static variables while doing so: but not edit the functions themselves. Watch for a condition is often a feature (used when such a watch would be intrusive in code even optionally, or just freely to find bug).

Higher level code like Mathematical software operates on the bases of freely writing lines and using them in any order. However this is broken when one creates a function: the dubug process again will be unknowable at exit of the function.

CreateModule helps alleviate this by automatically creating functions out of a group of lines, so that while debugging one can both truly edit lines and execute in any order "during runtime" yet not have to separately write (or cut and paste) a group of lines into a function and fun header. — Preceding unsigned comment added by Sven nestle2 (talk • contribs) 22:26, 6 October 2013 (UTC)

Vandalism?
I'm pretty sure the entomology of the term "debug" is not derived from some gangster/programmer. — Preceding unsigned comment added by 12.11.145.74 (talk) 13:19, 5 August 2015 (UTC)


 * Right, it was the result of a "wave" of vandalism. &mdash; Dsimic (talk &#124; contribs) 07:28, 2 September 2015 (UTC)

debugging second meaning
I have added the text :

Debugging is also being used by Android to mean accessing already written modules that allow a piece of software to interface with another piece of software. [1] This is thus not fixing a problem that is in poorly written software, but accessing a library to enable already properly programmed software to work. Windows and other operating systems also use this meaning of debugging as can be seen in the list of Windows debugging tools [2].

and put 2 references to show this usage. It seems to be quite common. Unfortunately often it is conflated with the first meaning in how debugging is described. One editor has removed this claiming that it is a very specific usage. I cannot see any wikipedia guideline saying that specific usage within an article makes it not relevant. I clearly have made it a second meaning - as any dictionary entry would do. I do not want a pointless edit war over someone thinking the main usage should be the only meaning listed and me finding it helpful to know why so much software is bundled with "debugging tools" - when most users are NOT programmers and find turning off or deleting these toold means their software does not work. — Preceding unsigned comment added by 88.115.204.102 (talk) 05:07, 9 September 2019 (UTC)
 * It appeared to me that the first reference, https://www.makeuseof.com/tag/what-is-usb-debugging-mode-on-android-makeuseof-explains/, was not a reliable source. I've looked and I could be persuaded that it might be, however as wrote on your talk, it's a very narrow use of the term, and it's not really different that what's done by a developer using an IDE. The main difference is the sandbox for the code is on the mobile device: "developers need to enable USB debugging so they can push apps to their devices to test and interact with". It is working with the device so they can fix problems. And for the record, debugging isn't about fixing problems with poorly written code either, it's the "process of finding and resolving defects or problems within a computer program that prevent correct operation of computer software or a system." The code may be well written, but it still exhibits problems. This use of debugging is an extension of the term. Walter Görlitz (talk) 05:18, 9 September 2019 (UTC)
 * Thank you Walter. Any secondary or alternate meaning needs to be rigorously documented with impeccable sources; these aren't. Drmies (talk) 13:49, 9 September 2019 (UTC)

Debugging is not just for software
The history section indicates that debugging was used outside the software realm as far back as the 1940s. In that light, I updated the lead to be less software specific, but the article is still pretty software centric. Anyone have non-software content to add? Stevebroshar (talk) 13:49, 29 April 2024 (UTC)

Deleted unit testing and integration testing
@Laiwoonsiu WRT change https://en.wikipedia.org/w/index.php?title=Debugging&curid=24998792&diff=1223754238&oldid=1222986014 with comment ''Deleted unit testing and integration testing from debugging tactics. According to the Software Engineering article in Wikipedia, software construction “typically involves programming (a.k.a. coding), unit testing, integration testing, AND debugging”''

I do think that running tests is a debugging technique and I don't think the reason for removal is sound.

I think both unit and integration testing may or may not fall into the construction phase. Also, neither are very typically performed. So, the referenced WP article is unclear if not wrong IMO.

Further, I also don't think one article should be used as the source of truth for another.

Then again, running tests is not what most people typically think of as debugging. IMO, the current wording "debugging tactics can involve" is ambiguous and should be changed to use wording like: "debugging tactics include but are not limited to:..."

The word can is surprisingly ambiguous. Consider: You can't but too much water in a nuclear reactor. Stevebroshar (talk) 16:39, 14 May 2024 (UTC)


 * This article is part of a series on Software development. If you disagree, you may need to review the series. -- Laiwoonsiu (talk) 13:02, 15 May 2024 (UTC)
 * @Laiwoonsiu First, you might be replying to the topic I added titled "Debugging is not just for software". I added two topics but forgot to add a title for the second so the two ran together. The second one I added to talk about your recent deletion. ... Second yikes. You're comment is a bit triggering ... Third, if this article has to be part of that series (which is course is debatable), then this article is misnamed. Should be something like "Debugging (software)". ... Fourth, what's a series? Never paid attention to that before. Does anyone? Stevebroshar (talk) 14:24, 15 May 2024 (UTC)


 * (1) I concur with renaming the Wikipedia article to “Debugging (software)”. (2) I added the quotation “Software testing is related to, but different from, ... debugging” from IEEE SWEBOK to the Wikipedia article “Software Engineering” to further justify my previous editing. -- Laiwoonsiu (talk) 10:26, 16 May 2024 (UTC)
 * Comment, I had reverted Laiwoonsiu's move of this article to Debugging (software) because it is generally not proper to append a parenthetical disambiguating term when there is no other existing article that could have the same title. In other words, it make no sense and is no improvement to have the article at Debugging (software) leaving Debugging as a redirect to that article. older ≠ wiser 15:36, 17 May 2024 (UTC)


 * For the information of learned colleagues: in response to the statement "there is no other existing article that could have the same title", please kindly note that “debug” and “debugging” may refer to (1) Stepping (debugging), (2) .debug info, (3) Debug (command), (4) DEBUG (CONFIG.SYS directive), (5) Debug (film), (6) Debug (magazine), (7) DEBUG (tag), (8) Debug code, (9) .debug info, (10) Debug menu, (11) Debug Monitor, (12) Debug new, (13) Debug port, (14) Debug Project, (15) Debug symbol, (16) Debug With Arbitrary Record Format, (17) DebugWIRE, and many more. Just my two cents. -- Laiwoonsiu (talk) 03:21, 19 May 2024 (UTC)
 * Most if not all of these would not use the gerund form. older ≠ wiser 10:09, 19 May 2024 (UTC)
 * @Laiwoonsiu Please drop the "learned colleagues" pretentiousness ... @Bkonrad Please drop the older/wiser pretentiousness ... WRT "generally not proper to append a parenthetical disambiguating term when there is no other existing article that could have the same title." according to who? ... but yeah, all those links are not debugging ... Here's the thing: We as a culture seem to have forgotten that bug was used long before software was a thing. Further, I have read (in this article!) that debugging is not software-specific. I think this and other articles were written with the idea that (de)bug(ging) is software-specific. ... I worked on bug (engineering) and software bug (which IMO should be Bug (software)) to clear some of this up. And now @Laiwoonsiu says that this article has to be software specific. Honestly, I don't think we have to have an article about debugging that is only about software; in fact this one isn't and wasn't before I modified it recently. I think one article on debugging is good enough and it can be mostly about software. Another option is to remove the link from the software development series (I think the series things are low value). ... but ... you both seem less than flexible. You are probably both mad at me at this point and it's just awkward. ... Taking a step back, this is about organization and I've found that humans are quite good at organizing. We all do it, but ... we all do it differently. Hard to have consensus. Stevebroshar (talk) 02:38, 20 May 2024 (UTC)


 * @Stevebroshar: Many thanks for your neutral stand. In fact, I was only responding to your earlier statement ‘Third, if this article has to be part of that series (which is course is debatable), then this article is misnamed. Should be something like "Debugging (software)".’ I will not insist either way.


 * On the other hand, I am not overly comfortable about @Bkonrad's idea that we can have Debug (command), Debug (film), Debug (magazine), and so on, but not Debugging (software).


 * -- Laiwoonsiu (talk) 03:56, 20 May 2024 (UTC)
 * @Stevebroshar, I've used 'older≠ wiser' as my signature for the better part of the past two decades here. Sorry that you find that to be pretentious. Perhaps I am, but it's not something I think about.
 * @Laiwoonsiu, let's look at this from another perspective: if this is moved to debugging (software), what happens to debugging? If it simply redirects here, then you've gained nothing and have formed an irregular title at odds with current titling practices and guidelines on Wikipedia. Those articles you mention do not use the gerund form. One would never refer to to film as "debugging". Same for the others. Those all require some form of disambiguation because there is a primary topic for debug, namely this very article (BTW, that is known as a primary topic redirect). There is currently no other article that conflicts with the gerund form "debugging". older ≠ wiser 06:58, 20 May 2024 (UTC)


 * @Bkonrad (Redirected from older ≠ wiser):


 * (1) There appears to be some misunderstanding about my preference between Debugging and Debugging (software). I wrote in my last response that “I will not insist either way.”


 * (2) Let us not indulge into personal viewpoints like “I am not overly comfortable”. If you are not comfortable with this clause, I am happy to withdraw it. According to Wikipedia recommendation at the beginning of this talk page, “Seek dispute resolution if needed’’.


 * (3) There are ample Wikipedia articles that require more serious reviews and corrections. An example that may be of our interest is Software Engineering. I spent quite some time correcting many technical and factual errors. Please feel free to give me any feedback.


 * Cheers, Laiwoonsiu (talk) 11:04, 21 May 2024 (UTC)
 * @Laiwoonsiu
 * 1) OK
 * 2) I'm not sure why you bring this up. Did I make any objection to that phrase of yours?
 * 3) I know next to nothing about software engineering. My concerns here are with article titling and unnecessary disambiguation. older ≠ wiser 12:09, 21 May 2024 (UTC)
 * @Bkonrad @Laiwoonsiu I stepped away from this for a few days since emotions seemed to be getting in the way. Insomnia has me awake so I'll write out some thought that've been rattling around my brain. Let's try to make progress. ... There are many constraints and they cannot all be satisfied at once. I'll try to list them all:
 * this article is part of software development series so should _only_ talk about software
 * debugging is not a software-specific term; at least not historically; but maybe today it is; who knows?
 * debugging is a gerund and that is a word form that is not normally used for an article (can we call it debug?)
 * if we change this article to debugging (software) then there's a disambiguated article with no non-disambiguated article and that's not normal (for WP)
 * seems like there are more, but no others are popping into my brain rn. ... Option 1: remove the software development series thing since I don't think it adds value. Option 2: Name the article Debug (software). Then, it is software specific, _not_ a gerund and _not_ an article that is disambiguated for which there is no non-disambiguated article. Stevebroshar (talk) 07:26, 25 May 2024 (UTC)
 * @Laiwoonsiu WRT Let us not indulge into personal viewpoints like “I am not overly comfortable”. If you are not comfortable with this clause, I am happy to withdraw it. Seems you commented on your own comment (insert thinking emoji). Don't know what software engineering has to do with the price of tea in China. Stevebroshar (talk) 07:25, 25 May 2024 (UTC)
 * @Bkonrad When I reply to you, WP uses Bkonrad. In WP, that is your handle -- which is a level of indirection from your real name. To use yet another level of indirection is confusing and provides no value to the community. Seems self gratifying. And the handle seems to imply judgement on people based on age. That you have used it for 20 years is neither here nor there. Your handle rubs me the wrong way. It's hard to maintain calm emotions when discussing opinions, so pushing buttons with a handle seems unwise. ... I will strive to focus on the topic. Stevebroshar (talk) 07:25, 25 May 2024 (UTC)


 * @Stevebroshar:


 * Thank you so much for your kind words about my contributions to the Software Engineering article in the other thread.


 * Yes, let us "strive to focus on the topic". I have therefore considered Debugging and Debug very carefully.


 * (1) The Debugging article is (currently) part of a series on Software development. The core activities include Data modeling. Requirements, Design, Construction, Engineering, Testing, Debugging, Deployment, and Maintenance. We note that these activities are listed as nouns rather than gerunds. For example, we do not write "Designing", "Constructing", "Deploying", and "Maintaining".


 * (2) Indeed, online dictionaries list the word "debugging" as a noun before mentioning in passing that it is also a gerund.


 * (3) We have ample examples in Wikipedia qualifying nouns by phrases in brackets. For instance, we have Function (computer programming) and Function (mathematics).


 * Hence, I vote for Debugging (software) instead of Debug (software).


 * Cheers, Laiwoonsiu (talk) 13:31, 25 May 2024 (UTC)
 * @Laiwoonsiu, re #3, the Function articles you mention require disambiguation because there is consensus that there is no primary topic and the disambiguation page resides at Function. As there is no other existing article in contention for the title "Debugging", per WP:Article titles and WP:Disambiguation it would be incorrect to attach an unnecessary parenthetical disambiguator to the debugging article.
 * Re #2, that really doesn't matter. As the article gerund describes, it is a verb form that functions as a noun. It makes no difference with regards to disambiguation. older ≠ wiser 15:23, 25 May 2024 (UTC)


 * @Stevebroshar and @Bkonrad:


 * To avoid unnecessary debates, I looked up Manual of Style. I discovered Article titles. I note the following guidelines:


 * (1) Use nouns – Nouns and noun phrases are normally preferred over titles using other parts of speech


 * (2) Recognizability – The title is a name or description of the subject that someone familiar with, although not necessarily an expert in, the subject area will recognize.


 * (3) Naturalness – The title is one that readers are likely to look or search for and that editors would naturally use to link to the article from other articles.


 * (4) Precision – Usually, titles should unambiguously define the topical scope of the article, but should be no more precise than that.


 * (5) Concision – The title is no longer than necessary to identify the article's subject and distinguish it from other subjects.


 * (6) Miscellaneous – Redirects should be created to articles that may reasonably be searched for or linked to under two or more names (such as different spellings or former names). Conversely, a name that could refer to several different articles may require disambiguation.


 * Heeding the above guidelines, I suggest that we should define the article title as Debugging. We may have redirects such as Debugging (software) and Software debugging if you so wish.


 * Cheers, Laiwoonsiu (talk) 04:15, 27 May 2024 (UTC)