Talk:Debugger

Page contents not supported in other languages.
From Wikipedia, the free encyclopedia

linkfarm[edit]

I'm fixin' to remove the "Notable debuggers" section completely, and replace it with a link to Category:Debuggers, which is more complete, doesn't have linkspam, and so on. Anyone object? -- Mikeblas 02:10, 27 March 2007 (UTC)[reply]

agreed: the really few, historic debuggers (GDB, dbx debugger, etc.) can be in the "See also list".
I think that remedy should be added to this list because it was the first multithreaded visualization debugger and

over the next few years it will be the primary interface style that all debuggers go to for debugging large multicore systems, gpus etc. Remedy Debugger May 29, 2008 Peterkimrowe (talk) 23:34, 29 May 2008 (UTC)[reply]

the "Remarkable debuggers" section includes tools that have no debugging in their own spec, like Daedalus.
--Hgfernan 14:41, 17 June 2007 (UTC)[reply]

good plan... —Preceding unsigned comment added by 80.47.53.138 (talk) 06:23, 17 June 2009 (UTC)[reply]

Where to mention debugging formats ?[edit]

which do you think is the best place to mension debugging formats like DWARF and stabs ? here or in debugging --Hgfernan 14:35, 17 June 2007 (UTC)[reply]

Proposal to rewrite Debugger article[edit]

I propose a major rewrite of the Debugger article. Although I find nothing factually wrong with it, and it includes many important points, I feel that it does not read clearly for someone who doesn't already understand what a debugger is, nor does it mention the most essential points up front. A preliminary outline of my proposed rewrite is as follows:

Introduction: A debugger is a computer program which is used as a tool by a programmer to view and control the internal workings of another program at a very detailed level. This second program is said to be running under (the) debugger.

View & control: Controlling execution (single-step, suspend/resume); examining variables during suspension; breakpoints, crashes, exceptions.

Purposes of using a debugger: The term "debugger" is somewhat of a misnomer, in that a debugger does not itself debug code. Although a debugger can be of great assistance to a programmer in debugging code, a debugger is equally useful for analyzing and understanding the operation of an existing program, without any intention of diagnosing bugs. This understanding can be used to document the program, or to modify it. A debugger is a particularly important tool for hackers.

source-level debuggers vs machine-language debugger

ISS

program behavior may differ when running under a debugger (execution speed, timing issues, different compile options)

If there is general agreement to rewrite this article somewhat along these lines, I'll definitely want lots of help from previous contributors. (By the way, this is my very first attempt to contribute to Wikipedia, so please let me know if I've violated protocol.)

Bill Rubin 21:21, 21 August 2007 (UTC)

Agreed wholeheartedly; I'd also like to see coverage of:
OS Interfaces
ie, ptrace, procfs, Win32, hardware-level, simulation, etc
Engines
hardware debug registers, how a software breakpoint works
Symbolic Debugging
How opcode-level debugging tools interface with source languages
High Level Languages
Quick overview of how Java and C# provide debugger interfaces
Advanced Techniques
User mode single stepping, hit tracing, detours, hooking

--- tqbf 19:33, 5 November 2007 (UTC)[reply]

Kim Rowe 21:21, 17 April 2009 (UTC)

This is a totally simplistic view from the point of view of source code only debugging. Rethink this in terms of trying to solve the problem of debugging a system and the feature set changes completely. I'd also like to see coverage of:
OS Interfaces
Multiple processes and multiple threads
Display of debugging information using a variety of techniques
High level models for debugging
Simulation and debugging —Preceding unsigned comment added by Peterkimrowe (talkcontribs) 17:53, 17 April 2009 (UTC)[reply]
Much of this remains undone, and be useful to have in the article. — Lentower (talk) 19:52, 7 May 2015 (UTC)[reply]
The material in this StackOverflow post seems pretty helpful. But maybe Wikipedia requires citing an edited, published source? Perhaps this suggestion will help a Wikipedia editor who is harder-working than I. DavidHolmes0 (talk) 13:08, 15 September 2018 (UTC)[reply]

Proposed merge from Debugger front-end[edit]

As the Debugger front-end article is a subtopic of Debugger, and the articles are not particularly long, I have proposed a merge. --Snigbrook (talk) 21:01, 30 August 2008 (UTC)[reply]

Who knows - the entire debugger section has the wrong slant as far as I'm concerned. It misses what debuggers are intended to do. ... - April 2009 —Preceding unsigned comment added by Peterkimrowe (talkcontribs) 17:54, 17 April 2009 (UTC)[reply]

Saved/rescued external links[edit]

I start to save/rescue external links that are added to this article per Nov-26-2010 in this section, so that they are not lost , but also do not further pollute the article. I'm considering to move relevant links to the Open Directory Project.

  • see link added here [1]
  • see link added here [2]

Ptrb (talk) 14:29, 27 November 2010 (UTC)[reply]

Lacks a history section[edit]

A history section with notable early implementations (and related languages) would be nice. 76.10.128.192 (talk) 03:21, 20 September 2012 (UTC)[reply]

This remains undone. Assuming citations can be found:
  • Include any discussion of debugging by Babbage & Lovelace in their work on his Difference Engine, & anything significant from then to the first real computer.
  • Be better to just mention significant first implementations -- those that added significant features, or were the first on a type of computer architecture.
  • Be better to just mention the first implementation for classes of languges: procedural, functional, etc.
  • Be good to cover the the first debuggers for intrepreted vs. compliled languages.
Lentower (talk) 19:47, 7 May 2015 (UTC)[reply]

Network & network application debuggers[edit]

Assuming citations can be found, new sections on debugging network protocols and network programs (e.g. server/client applications) would be a very useful addition. — Lentower (talk) 15:26, 7 May 2015 (UTC)[reply]

Using packet analyzers, or using some other form of tool? Guy Harris (talk) 18:03, 7 May 2015 (UTC)[reply]
All classes/types of network debugging tools that are citable. — Lentower (talk) 19:00, 7 May 2015 (UTC)[reply]
Packet analyzers have their own page, so I'm not sure that would deserve more than a brief note, if that. If there are other network debugging tools, that might be more worthy of note, although this page mainly discusses programs that debug the behavior of an individual program rather than of a system, so perhaps network debugging would belong in a separate article. Guy Harris (talk) 19:18, 7 May 2015 (UTC)[reply]
Yes, packet analyzers would be a small paragraph in this section. — Lentower (talk) 19:59, 7 May 2015 (UTC)[reply]

System vs program debuggers[edit]

Guy Harris mentions above that this article is about tools for debugging individual programs, not systems of programs. And that network and network system debuggers are a sub-set of system debuggers.

Be a useful addition to this article to discuss all this — Lentower (talk) 19:59, 7 May 2015 (UTC)[reply]

Abstract debug protocols[edit]

DBGp is a common debugger protocol, and it is used in debugging various languages - I believe in particular Komodo IDE leverages it, and you can use it through some other front-ends for example https://github.com/joonty/vdebug. Are there other protocols? More recently, there's been some movement to abstract out language parsing for IDE help (syntax highlighting, etc) through Microsoft's Common Language Protocol. II | (t - c) 02:50, 21 April 2017 (UTC)[reply]

RAID (RApid Interactive Debugger)[edit]

I am writing this Talk piece on my RAID debugger, because from my prior edit of the article on Local Area Networks, when I contributed to the History Section, I learned that the protocol is to first introduce what you want to do in Talk, or get called a bad name (I forget what it is) by wiki-editor "regulars."

I think RAID (RApid Interactive Debugger) belongs in the list of "earlier minicomputer debuggers." It also probably needs its own Wiki entry, which I'd be happy to create. The only references I can think of for it would be a DECUS paper I presented and the RAID manual, of which I still have a few copies. Each of the several government agencies and universities that used it may have their own user manuals.

Between 1969 and 1972 I created and marketed RAID, the first interactive source level software debugger. It was for FORTRAN IV, and ran on PDP-10s (DEC10s) in a timesharing environment.

At the time it was the only high level interactive source level debugger available for any high level language.

My licensed customers included: Digital Equipment Corporation, Graphic Controls, Tymshare Corp, Timesharing Ltd.(England), Technical University of Berlin (W. Germany), Atomic Energy of Canada, Ltd.(Canada), Oak Ridge National Laboratories, Atlas Steels Div of Rio Algom (Canada), Colgate University, University of Illinois at Urbana-Champaign, Grumman Aircraft, U.S. Department of Transportation, Stevens Tech, Princeton University, Interactive Sciences Corp, Harvard Business School, University of Pennsylvania, Western Michigan State University, National Institutes of Health, Buffalo State University, and several other universities and government agencies.

When my negotiations with DEC to buy the program from me fell apart (my fault), they stole it and (I suspect) used it to develop FORDDT. I learned to never try to guess how much someone is going to make off your program, and then up the price to reflect that. A lesson that has stuck.

In any case, keeping it updated at such disparate locations went from difficult to impossible with the only remote access by dumb terminal, and long distances charges being my responsibility in many cases. Traveling with (or mailing) DECtapes was the only practical way, but I was working out of my farm a hundred miles from the nearest PDP-10. Arpanet still required dialup to a host, and for whatever reason was not an option, probably because using it for "commercial" purposes was verboten. And my two 9-party open wire lines didn't much help either. It soon became untenable, and I was by then in law school. So I'd like to know how my former customers phased it out. Few ever got back to me, and I don't think it was because it was bug-free. Most were probably disgusted with me and for good reasons.

I would be delighted to hear from anyone and everyone on my proposal to include RAID as the third item in the list of earlier minicomputer debuggers, adding to DDT and ODT. You can call me at 607-478-8793, or by email w.ross.scott@gmail.com. WRossScott (talk) 22:33, 1 July 2022 (UTC)[reply]

I didn't see any bad names used on your talk page, in a quick scan of edit comments for Local area network subsequent to edits using your name, or Talk:Local area network subsequent to edits using your name, so either they were responding to edits you made anonymously or they were made somewhere else.
So I'm not sure to what they were objecting.
I wouldn't call the PDP-10 a minicomputer, so it's more like a mainframe debugger unless it was subsequently ported to minicomputers. DDT is in a "minicomputer" list because it's a name DEC gave to many debuggers, most of which ran on minicomputers as most of DEC's machines were, at the time, minicomputers; the "mainframe" list is probably viewed as having the word "IBM" preceding the word "mainframe".
That whole list needs a cleanup, as per that section's hatnote.
With the right references, RAID might be deemed notable for an article of its own, and linked to from List of debuggers. Guy Harris (talk) 02:18, 2 July 2022 (UTC)[reply]
I think labeling RAID an "earlier mainframe debugger" would be misleading. That is because the PDP-10 only became a "mainframe" late in life and as a marketing tool (e.g. KS10, DEC2020). For the first six years or so not many dared use it for common data processing tasks, not even DEC. For example, Tops-10 treated batch jobs as just another terminal job, getting batch streams through a simulated dumb terminal called a pseudo-teletype. When DEC felt brave enough in 1973 to start transferring its internal data processing workload (payroll, supplies, accounting, etc.) from its Burroughs machines to PDP-10s, the COBOL run-time system didn't properly handle 9 track mag tape error checking and I had to rewrite it for WRossScott (talk) 03:18, 7 July 2022 (UTC)DEC. DEC 10s were only then starting to behave like mainframes. So your thoughts would be appreciated. WRossScott (talk) 01:05, 7 July 2022 (UTC)[reply]
Sounds fine in theory, but we should base the mentions (and any potential standalone article) on independently written sourcing. Are there sources available that were written and published by people unaffiliated with you and/or your company? MrOllie (talk) 01:11, 7 July 2022 (UTC)[reply]
There is no independently written sourcing to my knowledge. I've Googled for RAID (and it's first incarnation "DEBUG") without luck. There were references to "DEBUG," but not to my DEBUG. That's why I want to get it into WIKI before I expire and it's lost to history.
So all I have is my 1972 or 1973 DECUS paper, a manual that I wrote, a Grumman Data Systems manual, a printout of the source code, Dectapes and a 9 track tape containing what I think is the source code.
If someone has a running dec10, they can have the dectapes and the 9 track and try to make it work. That might result in some independent sourcing.
Two people that maintained RAID at my licensees were Glenn Ricart at NIH, and Tom Saleh at Grumman Data Systems.WRossScott (talk) 04:30, 7 July 2022 (UTC)[reply]
Independently written sources would be required for a standalone article, see Wikipedia's inclusion criteria. MrOllie (talk) 16:21, 7 July 2022 (UTC)[reply]
I first note the fifth pillar of Wikipedia is no hard and fast rules that would prevent inclusion of an otherwise "notable" article.
There must be thousands upon thousands of pdp-10 Fortran programmers in business, education, science, and government who relied upon RAID to get their work done during the 1969-1976 heyday of the 10.
Let's say I find some still sentient beings now long retired from where it was used. (I am 82 myself). Would some testimonials from those who can still see and write qualify as an opinion of notability?
Or a statement from Harvard Prof Emeritus Ugo Gagliardi who was responsible for it coming into being? Or from internet hall-of-famer Prof. Glenn Ricart who as a young programmer maintained it and showed programmers how to use it when he was at NIH?
I think there were only a couple of major PDP-10 time sharing utilities that didn't rely on RAID. For better or worse, time-sharing utilities are extinct, as is RAID. Isn't a major purpose of Wikipedia to preserve recollection of such extinct species?
It was also notable, in that it debugged an untold number of the U.S. Government's most important and complex software projects. One was a simulation of our National transportation system at the DOT transportation systems center (Volpe Center) in Cambridge. Another was the Government's Federal Energy Office inventory of hydrocarbon fuels during the 1973 Arab Oil embargo. It was also used to port the country's first interactive epidemiology statistical research system to the NIH PDP-10. Those 3 are just some of the ones I personally got called in to help with. There are thousands of others.
So RAID is dead, but it no doubt gave rise to much of what followed. Lets not lose our history in the sands of time. WRossScott (talk) 03:49, 8 July 2022 (UTC)[reply]
No, testimonials are not going to help. If a couple of independent people publish books through an academic publisher we might have something. Look, I'm just trying to keep you from wasting your time - any article you create without satisfying the sourcing requirements will definitely get deleted. There really isn't any way around this, and the 'lets ignore policy just this once' argument simply doesn't work in deletion discussions. MrOllie (talk) 11:54, 8 July 2022 (UTC)[reply]
I concede on the separate article question. But I saw that adding to a list has no such restriction.
What do you think of adding to a list, but with footnotes referencing the Grumman Data manual, and my DECUS paper?
Whoever looks up "debuggers" and recalls using or writing about RAID may know of some writings, or may have even produced something themselves. If manuals count as independent writings, I think some institutional or government customers wrote their own manuals, based on my generic version. WRossScott (talk) 22:38, 8 July 2022 (UTC)[reply]
I think that sooner or later someone will notice the list entry isn't properly sourced and will remove it. Manuals are not independent writings. MrOllie (talk) 23:23, 8 July 2022 (UTC)[reply]
Why wouldn't a manual written by one of my customers/licensees by an independent writing?
Where do I find the Wiki guideline that supports your definition?WRossScott (talk) 12:09, 11 July 2022 (UTC)[reply]
Your customers are associated with you, and you just wrote that those manuals were 'based on my generic version' - why would they be independent? You can find my definition at WP:GNG and WP:RS. MrOllie (talk) 12:29, 11 July 2022 (UTC)[reply]
I think labeling it as a minicomputer debugger would also be misleading. At the time the PDP-6 came out, DEC had come out with the PDP-1, the PDP-4, and the PDP-5. The first two were 18-bit and the third was 12-bit, so between 1/2 and 1/3 of the word size, and none of them had a privileged/unprivileged mode or relocation hardware, nor did they ship with a time-sharing operating system making use of those features.
(A modified PDP-1 at MIT had a time-sharing system, and the PDP-7/PDP-9/PDP-15 successors to the PDP-4 and the PDP-8 successor to the PDP-5 had both DEC and non-DEC operating systems, one of the non-DEC operating systems for the PDP-7 being a remote ancestor of the OS running on the machine on which I'm typing this and one of the DEC operating systems for the PDP-15 was a multi-user OS]], and the PDP-8 also had a time-sharing OS. But those came later.)
The PDP-6 and PDP-10 could be considered "scientific computers", similar to the also-36-bit IBM 7090, but, unlike the 7090, its OS was designed around time-sharing rather than batch (a non-IBM time sharing OS for a 7090 with special RPQ hardware existed, but the 7090 and 7094 were mostly batch machines, as far as I know). The 7090/7094 had a COBOL compiler, but I don't know how much it was used relative to the FORTRAN compiler. It was, however, used for Sabre, so it did have some DP use.
Perhaps the 6 and 10 were more superminicomputers before that term was coined, but they strike me as being much bigger and fancier than the minicomputers of the day. Guy Harris (talk) 04:55, 7 July 2022 (UTC)[reply]
How about in the list as "Earlier Mini/Midi Computers?" WRossScott (talk) 16:15, 7 July 2022 (UTC)[reply]