Forgot your password?
typodupeerror
Patents

Breakpoints have now been patented 412

Posted by CmdrTaco
from the real-coders-just-use-printf-anyway dept.
An anonymous reader noted that apparently Breakpoints have now been patented. From the link "A method for debugging including the steps of receiving code having a software breakpoint function therein, running the code for the purpose of debugging, monitoring the code to detect the presence of the software breakpoint function, recognizing the software breakpoint function, determining an action to be performed based on the software breakpoint function, and implementing the action. The present invention also includes an apparatus for implementing the method for debugging and a medium embodying a program of instructions for execution by a device to perform the method for debugging."
This discussion has been archived. No new comments can be posted.

Breakpoints have now been patented

Comments Filter:
  • by Anonymous Coward on Thursday May 03, 2007 @01:58PM (#18975717)
    I'd love to have this as an excuse for not doing them. Thanks.
    • Step 2? (Score:5, Funny)

      by fishdan (569872) * on Thursday May 03, 2007 @02:31PM (#18976295) Homepage Journal
      Step 1: Patent commenting
      Step 2: ???????????
      Step 3: Profit!!!!

      The problem is there will be no profit because no one comments. On the other hand, at least there is no prior art to rule against your patent.
    • by LordSnooty (853791) on Thursday May 03, 2007 @02:37PM (#18976413)
      In that spirit, I hereby copyright the phrase "THIS IS A KLUDGE"
    • by Tmack (593755)
      Well, Im packing up and going home. I wouldnt want my employer getting in trouble over patent infringement because of me. Guess Ill just have to sit at home and wait until they work out a licensing agreement or something so I can get back to work fixing code....

      tm

  • Next up... (Score:5, Funny)

    by CdrGlork (1096607) on Thursday May 03, 2007 @01:59PM (#18975731)
    Next to be patented will be the GOTO statement, so ALL YOU LAZY PROGGERS WILL STOP USING IT!
    • Goto is very heavily used ... well, the JuMP call in assembly at least ;-) It works exactly like goto, and occurs plenty in modern software ... just because you don't see it doesn't mean its not there :-)
      • by Cylix (55374)
        Yes,

        I'm about to patent a new twist on the jump concept.

        It will perform a compare and can jump based on success or failure of the previous compare operation!

        Egads man, I'll be rich once programmers catch on to my new and improved version of jump!

      • hardware debugger (Score:5, Informative)

        by Anonymous Coward on Thursday May 03, 2007 @02:06PM (#18975855)
        its a hardware debugger or so it appears, not a software one, they specifically address pitfalls with software debuggers and why they did this method.

        while hardware ones arent totally new, they arent that common either. gdb is immune from this for example since its software only.

        the abstract isnt the patent, the title isnt the patent, the claims are the patent. Readers are encouraged to read the claims and not spread FUD because they can.
        • by richie2000 (159732) <rickard.olsson@gmail.com> on Thursday May 03, 2007 @02:32PM (#18976311) Homepage Journal
          I had a hardware breakpoint debugger in The Final Cartridge II on the Commodore 64. That was, what - 20-25 years ago? This patent was issued last year.

          That said, the first 13 claims pertain to software only (curio: the word "software" appears no less than 17 times in the first claim, "hardware" scores a big fat zero). Subsequent claims seem to revolve around a device reading a medium where the debug code is stored, ie RAM, some kind of ROM or even a CD with reader would fit this description.
          It's so vaguely stated as to be totally useless. Useless, that is, if someone were to actually use this patent to implement something useful. You know, like the patent system was supposed to do. Very useful if it's to be used to threaten competitors and stifle innovation.

          "To promote the progress of science and useful arts", my ass.
        • Re: (Score:3, Informative)

          by thomasa (17495)
          I worked on a hardware debugger back in the early 80s working
          on 8080 based software. Intel hardware debugger. You could
          set break points in hardware. It would continually check the
          address bus when it saw the address of the breakpoint, it would
          interrupt the execution. It had 8 inch floppy disks too.
    • Re:Next up... (Score:5, Interesting)

      by Vihai (668734) on Thursday May 03, 2007 @02:10PM (#18975923) Homepage
      I DO use gotos heavily.

      If you know where and how to use them, they actually are a sensible choice.

      They are very good in implementing the function rollback code, that is code which has to undo everything the function has done in case of an error.

      For example:


      int allocstuff(void)
      {
              char *a = malloc(100);
              if (!a)
                      goto err_malloc_a;

              char *b = malloc(100);
              if (!b)
                      goto err_malloc_b;

              return 0;

              free(b);
      err_malloc_b:
              free(a);
      err_malloc_a:

              return -1;
      }

      • by giafly (926567) on Thursday May 03, 2007 @02:22PM (#18976127)
        to prevent horrors like OP. Did you notice how the "free(b)" call was after an unconditional return? Somebody didn't.
        • Re: (Score:3, Informative)

          by Vihai (668734)

          to prevent horrors like OP. Did you notice how the "free(b)" call was after an unconditional return? Somebody didn't.

          Yes, the compiler will happily optimize it away, however, when you are adding another allocation you don't have to remember to add the deallocation code you left out before. You may well comment it if the compiler doesn't like it but only if you licensed the comments patent :)

      • by geoff lane (93738)
        It truly is possible to write BASIC programs in any language......
      • Re: (Score:2, Funny)

        You're using a programming language where you have to write the code yourself to keep track of what memory has been allocated and then free whatever half-baked state you find yourself in when an error happens? I didn't know they still had such things. Tell me. Does your computer use valves or relays?
        • Re: (Score:3, Funny)

          by Vihai (668734)

          I don't think I'm undestanding you, sorry, I'm not a native english speaker.

          I, of course, use that approach when I write C code, that's why I wrote that code snippet in C.
          And I, of course, write C code in kernel land and when writing critical code in userland

          Oh... and yes... memory allocation failures may well happen on modern machines in kernel land... and if you like to write robust code, you have to cope with those

      • As far as I can tell, the free(b); will never get called. If both malloc()s work, it will hit the return 0; and bypass the subsequent code; if either one fails, the goto labels are past the free(b); statement.
      • by Dachannien (617929) on Thursday May 03, 2007 @02:32PM (#18976299)
        Your code makes me want to throw up.
      • by teslar (706653)
        Err, ok, maybe I am just missing something fundamental here, but why do you need the gotos? Why not just something like:

        int allocstuff(void) {

        int return_val = 0;
        char *a = malloc(100);

        if (!a) {
        return_val = -1;
        } else {
        char *b = malloc(100);

        if (!b) {
      • by Malc (1751)
        Ugh: allocating on the heap AND using goto.

        int allocstuff()
        {
        try
        {
        std::string a, b;
        // Not exactly necessary in most situations, but ensure the buffer is 100
        // chars like the OPs (whose was 99 actually)
        a.reserve(100);
        b.reserve(100);
        }
        // Catch ... is bad, but can't be bothered to look up which exception is thrown. Most
        // of the time don't even bother with this try/catch and let

      • Re: (Score:3, Insightful)

        by Chris Burke (6130)
        I really don't see how you figure those 'goto's increased the understandability or maintainability of that code. 'If' statements make the control flow clear simply by the structure. "goto" makes that structure meaningless since the program can leap out of it to some arbitrary point at any time.

        Just on general principle I eschew multiple returns from a function. For one, it makes control flow harder to understand (the exact same problem with goto) by creating alternative exits from a function and whatever
      • Re: (Score:3, Funny)

        by Anonymous Coward

        If you know where and how to use them, [gotos] actually are a sensible choice.

        I couldn't have put it better myself.

        10 PRINT "YOU'RE A DICK..."
        20 GOTO 10
        RUN
    • I like how in Java, goto is a reserved keyword, but it does absolutely nothing. Same with const.
    • by gstoddart (321705)

      Next to be patented will be the GOTO statement, so ALL YOU LAZY PROGGERS WILL STOP USING IT!

      Nah, don't patent the goto.

      Patent the entire idea of the machine code 'branch' instruction from whence the goto derives. That'll learn 'em -- you'll single handedly get rid of the whole concept of conditional logic in software. :-P

      Cheers
  • USPTO Link (Score:5, Informative)

    by MECC (8478) * on Thursday May 03, 2007 @02:01PM (#18975761)
    Here. [uspto.gov]

    Got there from a search at their site...

  • Err, prior art? (Score:4, Interesting)

    by RingDev (879105) on Thursday May 03, 2007 @02:02PM (#18975775) Homepage Journal
    Filing Date: 05/01/2002
    Publication Date: 11/06/2003

    Now, I'm pretty sure there is a whole slew of prior are on this, especially since it sounds like they are describing the method Visual Studio uses for break points and debugging. Heck even the debugging tools in VB5 and VB6 fit this description and that's from back in the mid/late 90's.

    -Rick
    • Re: (Score:3, Interesting)

      by gstoddart (321705)

      Now, I'm pretty sure there is a whole slew of prior are on this, especially since it sounds like they are describing the method Visual Studio uses for break points and debugging. Heck even the debugging tools in VB5 and VB6 fit this description and that's from back in the mid/late 90's.

      Well, I didn't read the specific of how this patent attempts to handle breakpoints, but I was using debuggers with breakpoints on VAX machines in the late 80's ... and those tools had been around a very long time.

      People have

    • Well? Make a point! (Score:5, Interesting)

      by EmbeddedJanitor (597831) on Thursday May 03, 2007 @02:29PM (#18976239)
      Prior art never seems to be much of an obstacle to getting patents. This keeps the patent industry active, which of course appeals greatly to the patent lawyers.

      I recently had a look at the area in which I have one of my patents and found no less than five patents which have claims that mine had. One of them even cited my patent in the search list and still made conflicting claims that were allowed.

      This situation is of course ridiculous. There is no accountability in the patent system. That is, there is no feedback in the system that ensures the USPTO provides high quality patents. The USPTO does not get sued if they give out stupid patents. No, you need to hire a patent lawyer and go sort it out in court. There are even some patent lawyers that specialise in mining the patents for prior art conflicts and solicite business that way.

      This situation wiill not fix itself because those in the system really like it the way it is. The USPTO keeps cranking out money for Uncle Sam by essentially selling the same property many times over. The lawyers love it. They get to charge fees to apply for a patent, then get to charge even more to fix the mess caused by broken patents. So why would it change?

      The only way it will change is if the practitioners become accountable for their actions. If they issue a bad patent then USPTO should pay for fixing the mess. USPTO would not like that, but it would soon improve patent quality. That would reduce patent disputes too, so the lawyers would not like it either.

  • That's it. (Score:5, Funny)

    by Manos_Of_Fate (1092793) <link226@gmail.com> on Thursday May 03, 2007 @02:02PM (#18975785)
    I'm applying for a patent on "A system of tubes, that carries information globally, so as to assist the procurement of pr0n."
  • No longer news (Score:3, Insightful)

    by pembo13 (770295) on Thursday May 03, 2007 @02:03PM (#18975789) Homepage
    At this point, these things aren't really "news" any more, and certainly no longer shocking.
    • by lixee (863589)

      At this point, these things aren't really "news" any more, and certainly no longer shocking.

      What's shocking is that nobody seems to be doing anything about it. It's like that outrageous CBS/NYT poll which shows 28 percent believe members of the Bush Administration are lying about "what they knew prior to September 11th, 2001, about possible terrorist attacks against the United States."

      It's like saying, "yeah, we know, they're all crooks. But whatcha gonna do about it?".

  • Prior Art (Score:3, Informative)

    by orbitalia (470425) on Thursday May 03, 2007 @02:03PM (#18975799) Homepage
    oh come on.. Conditional breakpoints have been around atleast since the mid eighties.. for example watcom's wd (watcom debugger) detailed here [pjwstk.edu.pl] for QNX/DOS etc.

    Seriously America needs to put a stop to software patents, it's damaging your software industry as Knuth puts very well in his letter to the PTO here [mit.edu]

    • Re: (Score:3, Interesting)

      Seriously America needs to put a stop to software patents, it's damaging your software industry as Knuth puts very well in his letter to the PTO

      It will never happen and I will explain why. I worked for the US government some years ago in my first job after college, so I know how the US government works and how government workers think. You need to understand the following:
      1) US government workers have "skills", and I use the term very loosely, that often have no practical application outside of the U
  • I'm not up on my patent-ese, but I think this is describing a specific type of breakpoint technology based on virtual functions. Since we've been talking about Javascript so much lately, and it's so easy to do virtual functions in JS, here's an example in JS code:

    Debugger.breakPoint = function()
    {
    //do nothing
    };
    Now if you put the function in your code, nothing happens:

    Debugger.breakPoint();
    But if you have the debugger initialized, it will replace the virtual function like this:

    Debugger.breakPoint = function()
    {
        Debugger.runDebuggerAndStopTheWorld();
    };
    Thus you end up with software breakpoints that can trigger the debugger based on optional listeners. At least, that's how I understand it. I could be wrong about the actual implementation.
    • by Mr. Underbridge (666784) on Thursday May 03, 2007 @02:07PM (#18975859)

      Thus you end up with software breakpoints that can trigger the debugger based on optional listeners. At least, that's how I understand it. I could be wrong about the actual implementation.

      You've just observed the slashdot patent attention span deficiency. Because most posters on this site don't have the slightest clue how to read a patent, they interpret a patent that claims to improve technology X by using method Y a synonymous to patenting X. Sure, this is obviously wrong to a moderately intelligent Orangutan, but nevertheless, it happens a lot here.

      • Yeah, except that debugging, breakpoints, and "virtual functions" or closures, interpreted code, or whatnot have been around for so long, that there is essentially nothing new under the sun. Smalltalk implementations were able to call into the debugger through an assert-like mechanism. You could then enter the debugger, change values around, and continue execution. Made things much easier when you were in the middle of a multi-day simulation test run and hit a problem. You could note the problem, fix it, and continue. Various Lisp, Scheme, ProLog and so forth variants have done some very neat things with debugging support through assertions, exceptions, traps, and all kinds of mechanisms. Essentially, any time you have an interpretive runtime, people play with different ways to do debugging.

        Another way to look at it is that many runtimes will automatically enter the debugger on an exception or trap of some kind. An assertion failure generates an exception or trap. Assertions are generally controlled by DEBUG variables of some kind. Viola! Configurable code-side breakpoints. Different languages handle resumption from exceptions in different ways.

        The problem is that people who write patents think that the mere act of putting two things together is innovative, even if the first thing is a tool, and the second is a logical extension of the tool's purpose, like adding "on the Internet" to something and calling it an invention. In this case, they did not even bother to see if it was done before, probably because they have no knowledge of languages outside the mainstream.
    • by escay (923320) on Thursday May 03, 2007 @02:17PM (#18976027) Journal
      From what I understand (read the invention background section in the patent) This is a patent about the implementation of a breakpoint handling mechanism, not the idea of using breakpoints to debug itself. specifically, conventional breakpoint sends a software interrupt that is either caught by (a) the debugger, pausing/halting program execution or (b) the OS, in case no debugger is present, resulting in a system hang or crash. Also the assembly halt code may vary for different processors.

      The patented breakpoint function catches interrupts and handles them in a specific way, irrespective of whether a debugger is running or not, and also issues CPU-indepedent halt codes, marking an improvement over existing techniques.

      Karma whoring, you say? I just have a fascination for patents.
    • by Xtravar (725372)
      That would be called a "function pointer" or "delegate" in "real programming terms".
      A "virtual function (or method in non C++)" is similar, but it is accessed through a pointer within the object that points to a virtual function lookup table. In other words, using obj->Function() translates to obj->vfnptr[NUM]()

      Yay for pedantry. Now who cares?
    • by jimicus (737525)
      Something like that's existed in debuggers for years - it's quite common to set up conditional breakpoints and the like.

      I think it's a bit more complicated. I'm not quite sure I fully understand it, but I think clause 14 is talking about scripting a debugger.
    • Yes, but that's not new either; people have been doing that since at least the early 80's.
    • Re: (Score:3, Informative)

      by pclminion (145572)

      I actually slogged through the entire patent, and to my (unprofessional) eye it certainly looks like they have patented ALL methods of software breakpoints which use a "specially named void function" which is inserted at a specific place in the code by a compiler or linker. That is essentially the definition of a software breakpoint, so they basically have patented the concept of a software breakpoint in general.

      Of course, we have to figure out what "specially named void function" means. If it means the f

  • by bherman (531936) on Thursday May 03, 2007 @02:04PM (#18975829) Homepage
    Take any of my code....it has a ton of breakpoints. Usually any function with an input breaks at that point.
  • by seniorcoder (586717) on Thursday May 03, 2007 @02:05PM (#18975841)
    I assisted in the hiring of a mid-level developer for our team.
    One week into his new job, I suggested he set a breakpoint in his code to quickly determine the cause of a problem. He said: "What's a breakpoint?"
    A month later he was fired.

    How does a developer manage to work for a few years without knowing what a breakpoint is?

    • by burris (122191)
      Easy, you work in an environment that has no or poor debugger support. For instance, I don't know any Python programmers that use the debugger. They all use extensive logging.
      • Indeed. There is a major school of thought (Linus Torvalds and Brian Kernighan spring to mind) that debuggers are an evil waste of time. I've always found that thinking about the problem (and reading the code again) and maybe a well-placed printf was far faster and more valuable than a debugger session.
    • by exp(pi*sqrt(163)) (613870) on Thursday May 03, 2007 @02:35PM (#18976381) Journal
      > How does a developer manage to work for a few years without knowing what a breakpoint is?

      His code always worked first time?

    • Re: (Score:3, Funny)

      by dodobh (65811)
      printf(3)
  • by dattaway (3088) on Thursday May 03, 2007 @02:06PM (#18975843) Homepage Journal
    A bad law is an unenforceable law.
  • How Patents Work (Score:3, Informative)

    by rilister (316428) on Thursday May 03, 2007 @02:06PM (#18975853)
    Hey people - I read TFA and there's no detail whatsoever attached.

    Before y'all get real excited about insane patents:

    1) This is a patent application, NOT a granted patent. Hence the serial number beginning 2003 - this means the application was submitted in 2003. It should have been processed now. I'll take a look if I get a spare moment.

    2) This is a snippet from the patent abstract, I'd say. It doesn't mean much at all - abstracts are pretty irrelevant to the content of a patent. We have no idea what they are actually patenting from this: it could be an entirely new mechanism for doing this, new code, a genetically engineered cow with the capability of implementing breakpoints.

    The abstract means NOTHING - it's often not supposed to. Don't have a cow, guys.

  • by uab21 (951482) on Thursday May 03, 2007 @02:16PM (#18976019)
    It's not patenting breakpoints, per se that I can determine. It's a software breakpoint put into code pre-compile, and then you can attach a debugger later to take advantage of the hook points put into the code as void functions, but the program can run normally without a debugger attached and not crash the system (which fixes a problem evident from one of the referenced patents (Carter)). Dunno about prior art for this implementation, but breakpoints in general are not claimed in this application.
    • Re: (Score:3, Informative)

      by Teancum (67324)
      If this is the patent, even this narrow definition has incredibly ancient (for computer software development) practice. I personally used such "software breakpoints" in software on an Apple ][ computer, back in 1977. And on other computer systems as well.

      This sort of breakpoint wasn't even new then, or something novel. In short, the complaints about this sort of patent as simply covering existing practices is valid, and yet another example of how the USPTO is royally screwing up in their understanding of
  • I am working on a patent on finding and correcting inconsistances, mistakes and unintended results withing the source code of a computer program by use of an application. It is to go with my application for typing source code patent.

  • In 1989, the lab I worked in had two Intel ICE-85 (In Circuit Emulator) machines, which could debug hardware instructions.

    Along with a big IBM boat anchor of a laser printer, our lab was always nice and toasty in the wintertime ... Summer wasn't so pleasant.
  • I'll try to patent the use of 'print' statement in debugging.
  • by nagora (177841)
    Isn't this how at least some FORTH debuggers have worked for decades?
  • by psbrogna (611644) on Thursday May 03, 2007 @02:26PM (#18976207)
    I'm in the process of getting "software bugs" patented. No worries- I'm planning on being quite liberal with licensing, just a modest subscription based royalty fee.
  • As much as I hate to admit, I used to play with Applesoft Basic on my Apple //c when growing up. You do Ctrl-C, and vavoom, you have a breakpoint.

    Now, let's go before that, to when I used to tool around on a TI 99/4A, using TI Basic. You hit Ctrl-C during your code's execution, and not only do you get a breakpoint, you get "BREAKPOINT AT n" (n being the line number) for the response. This alone was...oh, I want to say 25 years ago, roughly.

    So if this went through, somebody's deserving of a nice lit

  • by SQLz (564901) on Thursday May 03, 2007 @02:40PM (#18976469) Homepage Journal
    To patent software, it doesn't have to be new, inventive, or even your idea. Thats not the point of a software patent. You just pay a guy to submit anything you tell him to submit, and pay the patent office for the patent. They don't won't even put your idea into google. As long as its not too similar to something in their database, or doesn't violate some law of physics, you are usually good. Its a huge revenue stream for the US. Its the USTPO's opinion that the courts should handle the garbage they let though, and unfortunatly, that translates to the american people subsidizing the patent office by supporting the infrastructure to litigate these patents.
  • DDT (Score:3, Informative)

    by rlp (11898) on Thursday May 03, 2007 @03:10PM (#18977025)
    DDT debugger running (originally) on the DEC PDP-1 supported breakpoints.

    http://en.wikipedia.org/wiki/Dynamic_debugging_tec hnique [wikipedia.org]
  • by qazwart (261667) on Thursday May 03, 2007 @03:50PM (#18977815) Homepage
    This is first of all:

    1). Not a patent, but an application for a patent from 2001.
    2). This is a specific implementation of a breakpoint function, not breakpoints in general. The idea of this patent is to use an all purpose void function for doing breakpoints instead of a machine dependent instruction as breakpoints are now done.

    Patents have been loose (like the one-click patent), but this isn't one of them. Looking at the date on this patent and the way software is now handled, I believe this patent is a bit dated. Sort of like someone patenting a new way to implement the HTTP over a dialup connection without using SLIP or PPP.
  • Prior art! (Score:3, Insightful)

    by Opportunist (166417) on Thursday May 03, 2007 @03:53PM (#18977881)
    0xCC
  • by pcause (209643) on Thursday May 03, 2007 @05:25PM (#18979623)
    The recent Supreme Court ruling about "obviousness" will make this patent worth less than the paper it was printed on. This one will clearly get tossed if they try to enforce it. It is obvious, in the sense that the Court defined the term and prior art exists.

Help! I'm trapped in a PDP 11/70!

Working...