What was the first mainstream advanced debugger?











up vote
4
down vote

favorite












What was the first mainstream development toolchain that provided advanced debugging facilities?



By "mainstream" I mean something that was available on home computers, not mainframes or super-expensive workstations. It also implies that it was commercially available (not custom-developed tools that never escaped the garage of some mad scientist).



My definition of "advanced debugging facilities" includes at least the following features:




  • Setting breakpoints without having to define them explicitly in the source code (e.g. using the STOP statement in the middle of a gwbasic program does not qualify)

  • Running step-by-step at the source code level statements (not having to resort to low-level single-machine-instruction stepping)

  • Dumping the call stack, showing the actual function names from the source code

  • Show values of global and local variables without having to look at the raw memory / CPU registers, and know the ABI specs by heart


Any language qualifies (well, any language that supports function calls, given the requirement on being able to view some call stack).










share|improve this question






















  • The question is at the same time overly borad and way to narrow, as it implies the use of a high level language as well as stack based function calls and then narrowing down to home computers - devices that could by definition only offer a very limited amount of the requested features. Any answer will be argueable at best.
    – Raffzahn
    2 hours ago












  • @Raffzahn All right, let's make it more easily answerable: "What was the first mainstream advanced debugger Raffzahn ever encoutered?". No, seriously, I used to use Turbo Pascal and I know it was able to do that starting from some version (and I was amazed). I was using a PC, which is a kind of home computer. So home computers were totally able to do that at some point, and I have to disagree with your statement: "home computers - devices that could by definition only offer a very limited amount of the requested features".
    – dim
    2 hours ago










  • Well, Dim, that's the first agueable issue, as a PC isn't a home computer. Some C64 or Apple II is something to be considered a home computer - after all, just having one at oeme doesn't count - otherwise the MutiBus Unix Machine I had in 1980 would be one as well :)) A C64 of TO-7 or Apple II just doesn not have the capabilities to house a more than rudimentary debuger.
    – Raffzahn
    1 hour ago










  • Also, Raffzahns first doesn't trealy count, as it was mainframe system I encountered a first great symbolic debunging envirionment - to be used with Assembly programs from a commandline - but including all features you mention :))
    – Raffzahn
    1 hour ago










  • @Raffzahn I'm stunned you don't consider a PC a home computer. After all, doesn't it stand for "Personal Computer"? Don't you put your personal stuff at home?
    – dim
    1 hour ago















up vote
4
down vote

favorite












What was the first mainstream development toolchain that provided advanced debugging facilities?



By "mainstream" I mean something that was available on home computers, not mainframes or super-expensive workstations. It also implies that it was commercially available (not custom-developed tools that never escaped the garage of some mad scientist).



My definition of "advanced debugging facilities" includes at least the following features:




  • Setting breakpoints without having to define them explicitly in the source code (e.g. using the STOP statement in the middle of a gwbasic program does not qualify)

  • Running step-by-step at the source code level statements (not having to resort to low-level single-machine-instruction stepping)

  • Dumping the call stack, showing the actual function names from the source code

  • Show values of global and local variables without having to look at the raw memory / CPU registers, and know the ABI specs by heart


Any language qualifies (well, any language that supports function calls, given the requirement on being able to view some call stack).










share|improve this question






















  • The question is at the same time overly borad and way to narrow, as it implies the use of a high level language as well as stack based function calls and then narrowing down to home computers - devices that could by definition only offer a very limited amount of the requested features. Any answer will be argueable at best.
    – Raffzahn
    2 hours ago












  • @Raffzahn All right, let's make it more easily answerable: "What was the first mainstream advanced debugger Raffzahn ever encoutered?". No, seriously, I used to use Turbo Pascal and I know it was able to do that starting from some version (and I was amazed). I was using a PC, which is a kind of home computer. So home computers were totally able to do that at some point, and I have to disagree with your statement: "home computers - devices that could by definition only offer a very limited amount of the requested features".
    – dim
    2 hours ago










  • Well, Dim, that's the first agueable issue, as a PC isn't a home computer. Some C64 or Apple II is something to be considered a home computer - after all, just having one at oeme doesn't count - otherwise the MutiBus Unix Machine I had in 1980 would be one as well :)) A C64 of TO-7 or Apple II just doesn not have the capabilities to house a more than rudimentary debuger.
    – Raffzahn
    1 hour ago










  • Also, Raffzahns first doesn't trealy count, as it was mainframe system I encountered a first great symbolic debunging envirionment - to be used with Assembly programs from a commandline - but including all features you mention :))
    – Raffzahn
    1 hour ago










  • @Raffzahn I'm stunned you don't consider a PC a home computer. After all, doesn't it stand for "Personal Computer"? Don't you put your personal stuff at home?
    – dim
    1 hour ago













up vote
4
down vote

favorite









up vote
4
down vote

favorite











What was the first mainstream development toolchain that provided advanced debugging facilities?



By "mainstream" I mean something that was available on home computers, not mainframes or super-expensive workstations. It also implies that it was commercially available (not custom-developed tools that never escaped the garage of some mad scientist).



My definition of "advanced debugging facilities" includes at least the following features:




  • Setting breakpoints without having to define them explicitly in the source code (e.g. using the STOP statement in the middle of a gwbasic program does not qualify)

  • Running step-by-step at the source code level statements (not having to resort to low-level single-machine-instruction stepping)

  • Dumping the call stack, showing the actual function names from the source code

  • Show values of global and local variables without having to look at the raw memory / CPU registers, and know the ABI specs by heart


Any language qualifies (well, any language that supports function calls, given the requirement on being able to view some call stack).










share|improve this question













What was the first mainstream development toolchain that provided advanced debugging facilities?



By "mainstream" I mean something that was available on home computers, not mainframes or super-expensive workstations. It also implies that it was commercially available (not custom-developed tools that never escaped the garage of some mad scientist).



My definition of "advanced debugging facilities" includes at least the following features:




  • Setting breakpoints without having to define them explicitly in the source code (e.g. using the STOP statement in the middle of a gwbasic program does not qualify)

  • Running step-by-step at the source code level statements (not having to resort to low-level single-machine-instruction stepping)

  • Dumping the call stack, showing the actual function names from the source code

  • Show values of global and local variables without having to look at the raw memory / CPU registers, and know the ABI specs by heart


Any language qualifies (well, any language that supports function calls, given the requirement on being able to view some call stack).







software-development debugging






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked 2 hours ago









dim

291210




291210












  • The question is at the same time overly borad and way to narrow, as it implies the use of a high level language as well as stack based function calls and then narrowing down to home computers - devices that could by definition only offer a very limited amount of the requested features. Any answer will be argueable at best.
    – Raffzahn
    2 hours ago












  • @Raffzahn All right, let's make it more easily answerable: "What was the first mainstream advanced debugger Raffzahn ever encoutered?". No, seriously, I used to use Turbo Pascal and I know it was able to do that starting from some version (and I was amazed). I was using a PC, which is a kind of home computer. So home computers were totally able to do that at some point, and I have to disagree with your statement: "home computers - devices that could by definition only offer a very limited amount of the requested features".
    – dim
    2 hours ago










  • Well, Dim, that's the first agueable issue, as a PC isn't a home computer. Some C64 or Apple II is something to be considered a home computer - after all, just having one at oeme doesn't count - otherwise the MutiBus Unix Machine I had in 1980 would be one as well :)) A C64 of TO-7 or Apple II just doesn not have the capabilities to house a more than rudimentary debuger.
    – Raffzahn
    1 hour ago










  • Also, Raffzahns first doesn't trealy count, as it was mainframe system I encountered a first great symbolic debunging envirionment - to be used with Assembly programs from a commandline - but including all features you mention :))
    – Raffzahn
    1 hour ago










  • @Raffzahn I'm stunned you don't consider a PC a home computer. After all, doesn't it stand for "Personal Computer"? Don't you put your personal stuff at home?
    – dim
    1 hour ago


















  • The question is at the same time overly borad and way to narrow, as it implies the use of a high level language as well as stack based function calls and then narrowing down to home computers - devices that could by definition only offer a very limited amount of the requested features. Any answer will be argueable at best.
    – Raffzahn
    2 hours ago












  • @Raffzahn All right, let's make it more easily answerable: "What was the first mainstream advanced debugger Raffzahn ever encoutered?". No, seriously, I used to use Turbo Pascal and I know it was able to do that starting from some version (and I was amazed). I was using a PC, which is a kind of home computer. So home computers were totally able to do that at some point, and I have to disagree with your statement: "home computers - devices that could by definition only offer a very limited amount of the requested features".
    – dim
    2 hours ago










  • Well, Dim, that's the first agueable issue, as a PC isn't a home computer. Some C64 or Apple II is something to be considered a home computer - after all, just having one at oeme doesn't count - otherwise the MutiBus Unix Machine I had in 1980 would be one as well :)) A C64 of TO-7 or Apple II just doesn not have the capabilities to house a more than rudimentary debuger.
    – Raffzahn
    1 hour ago










  • Also, Raffzahns first doesn't trealy count, as it was mainframe system I encountered a first great symbolic debunging envirionment - to be used with Assembly programs from a commandline - but including all features you mention :))
    – Raffzahn
    1 hour ago










  • @Raffzahn I'm stunned you don't consider a PC a home computer. After all, doesn't it stand for "Personal Computer"? Don't you put your personal stuff at home?
    – dim
    1 hour ago
















The question is at the same time overly borad and way to narrow, as it implies the use of a high level language as well as stack based function calls and then narrowing down to home computers - devices that could by definition only offer a very limited amount of the requested features. Any answer will be argueable at best.
– Raffzahn
2 hours ago






The question is at the same time overly borad and way to narrow, as it implies the use of a high level language as well as stack based function calls and then narrowing down to home computers - devices that could by definition only offer a very limited amount of the requested features. Any answer will be argueable at best.
– Raffzahn
2 hours ago














@Raffzahn All right, let's make it more easily answerable: "What was the first mainstream advanced debugger Raffzahn ever encoutered?". No, seriously, I used to use Turbo Pascal and I know it was able to do that starting from some version (and I was amazed). I was using a PC, which is a kind of home computer. So home computers were totally able to do that at some point, and I have to disagree with your statement: "home computers - devices that could by definition only offer a very limited amount of the requested features".
– dim
2 hours ago




@Raffzahn All right, let's make it more easily answerable: "What was the first mainstream advanced debugger Raffzahn ever encoutered?". No, seriously, I used to use Turbo Pascal and I know it was able to do that starting from some version (and I was amazed). I was using a PC, which is a kind of home computer. So home computers were totally able to do that at some point, and I have to disagree with your statement: "home computers - devices that could by definition only offer a very limited amount of the requested features".
– dim
2 hours ago












Well, Dim, that's the first agueable issue, as a PC isn't a home computer. Some C64 or Apple II is something to be considered a home computer - after all, just having one at oeme doesn't count - otherwise the MutiBus Unix Machine I had in 1980 would be one as well :)) A C64 of TO-7 or Apple II just doesn not have the capabilities to house a more than rudimentary debuger.
– Raffzahn
1 hour ago




Well, Dim, that's the first agueable issue, as a PC isn't a home computer. Some C64 or Apple II is something to be considered a home computer - after all, just having one at oeme doesn't count - otherwise the MutiBus Unix Machine I had in 1980 would be one as well :)) A C64 of TO-7 or Apple II just doesn not have the capabilities to house a more than rudimentary debuger.
– Raffzahn
1 hour ago












Also, Raffzahns first doesn't trealy count, as it was mainframe system I encountered a first great symbolic debunging envirionment - to be used with Assembly programs from a commandline - but including all features you mention :))
– Raffzahn
1 hour ago




Also, Raffzahns first doesn't trealy count, as it was mainframe system I encountered a first great symbolic debunging envirionment - to be used with Assembly programs from a commandline - but including all features you mention :))
– Raffzahn
1 hour ago












@Raffzahn I'm stunned you don't consider a PC a home computer. After all, doesn't it stand for "Personal Computer"? Don't you put your personal stuff at home?
– dim
1 hour ago




@Raffzahn I'm stunned you don't consider a PC a home computer. After all, doesn't it stand for "Personal Computer"? Don't you put your personal stuff at home?
– dim
1 hour ago










2 Answers
2






active

oldest

votes

















up vote
10
down vote













The "Basic Programming" cartridge for the Atari 2600 came out in 1980 and it supports all of those except the first one. It had windows for the program, stack, variables, and output which could individually switched on and off (the cartridge would vertically stack as many enabled windows as would fit, stopping when all enabled windows were shown or it reached the bottom of the screen). Unfortunately, it had to fit in 4K of code space and run on a machine with 128 bytes of RAM (so the program, variables, stack, and output were limited to a total of 64 bytes), but I don't think I've seen anything that sophisticated on any more powerful machines prior to that.






share|improve this answer





















  • LOL. Supercat, that's a great answer. ;) Made my day !
    – Raffzahn
    1 hour ago


















up vote
4
down vote













THINK Pascal had an integrated debugger that meets all your criteria. You could mark stop points in the editor and then debug your compiled code using them. The debugger supported stepping, a meaningful call stack display, and a good list of the variables as structured typed information.






share|improve this answer





















    Your Answer








    StackExchange.ready(function() {
    var channelOptions = {
    tags: "".split(" "),
    id: "648"
    };
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function() {
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled) {
    StackExchange.using("snippets", function() {
    createEditor();
    });
    }
    else {
    createEditor();
    }
    });

    function createEditor() {
    StackExchange.prepareEditor({
    heartbeatType: 'answer',
    convertImagesToLinks: false,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: null,
    bindNavPrevention: true,
    postfix: "",
    imageUploader: {
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    },
    noCode: true, onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    });


    }
    });














    draft saved

    draft discarded


















    StackExchange.ready(
    function () {
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fretrocomputing.stackexchange.com%2fquestions%2f8487%2fwhat-was-the-first-mainstream-advanced-debugger%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown

























    2 Answers
    2






    active

    oldest

    votes








    2 Answers
    2






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes








    up vote
    10
    down vote













    The "Basic Programming" cartridge for the Atari 2600 came out in 1980 and it supports all of those except the first one. It had windows for the program, stack, variables, and output which could individually switched on and off (the cartridge would vertically stack as many enabled windows as would fit, stopping when all enabled windows were shown or it reached the bottom of the screen). Unfortunately, it had to fit in 4K of code space and run on a machine with 128 bytes of RAM (so the program, variables, stack, and output were limited to a total of 64 bytes), but I don't think I've seen anything that sophisticated on any more powerful machines prior to that.






    share|improve this answer





















    • LOL. Supercat, that's a great answer. ;) Made my day !
      – Raffzahn
      1 hour ago















    up vote
    10
    down vote













    The "Basic Programming" cartridge for the Atari 2600 came out in 1980 and it supports all of those except the first one. It had windows for the program, stack, variables, and output which could individually switched on and off (the cartridge would vertically stack as many enabled windows as would fit, stopping when all enabled windows were shown or it reached the bottom of the screen). Unfortunately, it had to fit in 4K of code space and run on a machine with 128 bytes of RAM (so the program, variables, stack, and output were limited to a total of 64 bytes), but I don't think I've seen anything that sophisticated on any more powerful machines prior to that.






    share|improve this answer





















    • LOL. Supercat, that's a great answer. ;) Made my day !
      – Raffzahn
      1 hour ago













    up vote
    10
    down vote










    up vote
    10
    down vote









    The "Basic Programming" cartridge for the Atari 2600 came out in 1980 and it supports all of those except the first one. It had windows for the program, stack, variables, and output which could individually switched on and off (the cartridge would vertically stack as many enabled windows as would fit, stopping when all enabled windows were shown or it reached the bottom of the screen). Unfortunately, it had to fit in 4K of code space and run on a machine with 128 bytes of RAM (so the program, variables, stack, and output were limited to a total of 64 bytes), but I don't think I've seen anything that sophisticated on any more powerful machines prior to that.






    share|improve this answer












    The "Basic Programming" cartridge for the Atari 2600 came out in 1980 and it supports all of those except the first one. It had windows for the program, stack, variables, and output which could individually switched on and off (the cartridge would vertically stack as many enabled windows as would fit, stopping when all enabled windows were shown or it reached the bottom of the screen). Unfortunately, it had to fit in 4K of code space and run on a machine with 128 bytes of RAM (so the program, variables, stack, and output were limited to a total of 64 bytes), but I don't think I've seen anything that sophisticated on any more powerful machines prior to that.







    share|improve this answer












    share|improve this answer



    share|improve this answer










    answered 2 hours ago









    supercat

    6,364635




    6,364635












    • LOL. Supercat, that's a great answer. ;) Made my day !
      – Raffzahn
      1 hour ago


















    • LOL. Supercat, that's a great answer. ;) Made my day !
      – Raffzahn
      1 hour ago
















    LOL. Supercat, that's a great answer. ;) Made my day !
    – Raffzahn
    1 hour ago




    LOL. Supercat, that's a great answer. ;) Made my day !
    – Raffzahn
    1 hour ago










    up vote
    4
    down vote













    THINK Pascal had an integrated debugger that meets all your criteria. You could mark stop points in the editor and then debug your compiled code using them. The debugger supported stepping, a meaningful call stack display, and a good list of the variables as structured typed information.






    share|improve this answer

























      up vote
      4
      down vote













      THINK Pascal had an integrated debugger that meets all your criteria. You could mark stop points in the editor and then debug your compiled code using them. The debugger supported stepping, a meaningful call stack display, and a good list of the variables as structured typed information.






      share|improve this answer























        up vote
        4
        down vote










        up vote
        4
        down vote









        THINK Pascal had an integrated debugger that meets all your criteria. You could mark stop points in the editor and then debug your compiled code using them. The debugger supported stepping, a meaningful call stack display, and a good list of the variables as structured typed information.






        share|improve this answer












        THINK Pascal had an integrated debugger that meets all your criteria. You could mark stop points in the editor and then debug your compiled code using them. The debugger supported stepping, a meaningful call stack display, and a good list of the variables as structured typed information.







        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered 2 hours ago









        Michael Shopsin

        854321




        854321






























            draft saved

            draft discarded




















































            Thanks for contributing an answer to Retrocomputing Stack Exchange!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            To learn more, see our tips on writing great answers.





            Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


            Please pay close attention to the following guidance:


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fretrocomputing.stackexchange.com%2fquestions%2f8487%2fwhat-was-the-first-mainstream-advanced-debugger%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            What visual should I use to simply compare current year value vs last year in Power BI desktop

            How to ignore python UserWarning in pytest?

            Alexandru Averescu