Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!

 



Forgot your password?
typodupeerror
×
Patents

Breakpoints have now been patented 412

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:
  • 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...

  • 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]

  • 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.

  • 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 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.
  • 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.
  • Re:How Patents Work (Score:4, Informative)

    by karolgajewski ( 515082 ) on Thursday May 03, 2007 @02:19PM (#18976073) Journal
    If you look up the application number in the USPTO, you will see that it has indeed matured to patent: US 7,055,140 [uspto.gov]

    The enforcability of this patent, however, is left to the discretion of the patent owner.
  • by pclminion ( 145572 ) on Thursday May 03, 2007 @02:28PM (#18976225)

    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 function returns void, I guess we could just return an int instead to get around the patent ;-)

  • by Vihai ( 668734 ) on Thursday May 03, 2007 @02:33PM (#18976341) Homepage

    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 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.
  • Not a patent (Score:2, Informative)

    by wmelnick ( 411371 ) on Thursday May 03, 2007 @02:40PM (#18976473)
    That number is not a patent number. This patent has been applied for and published not not granted yet. As long as it is a year (4-digits) followed by a 7-digit serial number, the patent has not yet been granted.
  • Re:Prior subject (Score:2, Informative)

    by badboy_tw2002 ( 524611 ) on Thursday May 03, 2007 @02:42PM (#18976511)
    Except that they're not patenting breakpoints. Try reading a little more than the inflamatory summary next time. Think about it, how could you patent something and use the word in the patent? By using the word "breakpoint" they've already exposed prior art, as the reader is expected to know what it is they're patenting. If you read a little more, you'll see they're patenting a new method of setting breakpoints.

    But sorry, continue on with the FUD!
  • by Anonymous Coward on Thursday May 03, 2007 @02:43PM (#18976533)
    Prior Art.

    The positively ancient PDP-11 had an instruction called BPT (Breakpoint Trap) which allowed debuggers to work.
    You then put BPT in your code. This was often enabled via macros and conditionals supplied to the compiler at compile/assemble time. The debugger attached itself to the interupt generated by the BPT instruction and hey presto you have debugging.

    I am sure that other Computers had similar instructions.

    It is just plain silly for this to be patented. Things like go to make the suppoed lead in all things IT that the USA has just look more like SCO FUD every day.

    I'm also very glad that the US Supreme Court has rules that US Patents don't have any legal standing outside the 50 States of the USA.
  • Re:hardware debugger (Score:3, Informative)

    by thomasa ( 17495 ) on Thursday May 03, 2007 @02:46PM (#18976595)
    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.
  • 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 software development practices.

    Of course, I very strongly believe that software should never be patented in any form in any situation, but even if you accept the bizzare concept of a software patent it should cover something new and innovative. Certainly not 40 year old concepts. Perhaps even 60 year old concepts, or even something Ada Lovelace came up with in the 19th Century.

    I'm certain that Adm. Hooper [wikipedia.org] is spinning in her grave over claims of originality for some of these patents, and in particular this one. It wouldn't surprise me if she implemented this idea into some of the compilers which she wrote back elsewhen.
  • 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]
  • Re:Prior subject (Score:2, Informative)

    by the_lesser_gatsby ( 449262 ) on Thursday May 03, 2007 @03:26PM (#18977351) Homepage
    They're patenting the replacement of 'do-nothing' virtual functions at runtime. This isn't new and it is certainly obvious to practitioners of the art of programming.

    I thought the Supreme Court had done away with this sort of nonsense?
  • I've seen this done before... or at least something that could be interpreted along these lines.

    In fact, the "software hook" that is referred to here I've also seen a software interrupt added into compiled code that during normal operations would simply have an IRET (interrupt return) op code on the ISR (interrupt service routine). But you could also have an independent debugger also run simutaneously doing all manner of evaluations on the software execution and performance evaluation. Or even evaluate CPU registers and perhaps even variables and other aspects of memory management. "Parameter passing" isn't even unusual even for interrupts.

    I will agree that debugging multi-threaded applications can be a near nightmare due to the race conditions and timing issues, it doesn't have to be nearly so big of a deal as this patent seems to indicate.

    This patent seems to imply that the tools which a competent software developer commonly uses are relatively unknown. It sounds here like this particular individual re-invented the wheel thinking he/she was very clever for having done something that their computer science professors never talked about when they were in school. This isn't that original, but trying to convince a non-programmer that it isn't may be a little harder.

    Instead, this individual should have patented something truly remarkable and non-obvious like assigning the value zero to a memory cell.
  • 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.
  • by thimon2k ( 1097267 ) on Thursday May 03, 2007 @04:01PM (#18978003)
    From http://portal.uspto.gov/external/portal/pair [uspto.gov] and searching on the application number 10/136,163, which is US20030208745 (patent application) or US7055140 (Granted patent) it is possible to see the course of a patent application. The application was rejected twice, first on 03-23-2005 as seen under 'image file wrapper' and later at 09-07-2005. However the applicant pointed out that the cited patent (US5835699) does not claim a specific void function. As some has pointed out, USPTO has a backlog of 3 millions patent applications meaning there is not much time to do a proper search for prior art.
  • constructors (Score:3, Informative)

    by Per Abrahamsen ( 1397 ) on Thursday May 03, 2007 @04:22PM (#18978437) Homepage
    I'd really hope you would not be surprised that a function called "alloc"-something would allocate memory on success.

    As sample code leaks since nothing points to the allocated memory, presumably because it is not relevant for the technique being illustrated.

    The technique would be useful for a constructor function, returning a pointer to an initialized object. A matching destructor function would then free the memory.
  • by EmbeddedJanitor ( 597831 ) on Thursday May 03, 2007 @04:28PM (#18978583)
    The damage of bad patents can be huge: a small company can be set up around one patent and a screw up can cost the destruction of the company.

    From the rules I have read, the USPTO appears to pitch themselves in a similar way to the courts. That is, if you dislike the results you can apply for a reexamination. If the judge/jury/etc misbehaves you can get a retrial. However, I doubt you can sue the Dept of Justice for legal costs etc due to needing a retrial.

    This question of culpability was raised here http://www.techdirt.com/articles/20051216/0312216. shtml [techdirt.com]

  • by keird ( 519534 ) on Thursday May 03, 2007 @04:53PM (#18979015)
    Visual Basic has had this for years. It's called Stop. When running in the IDE execution breaks at the Stop command just as if you had a breakpoint defined. The command does nothing when running outside of the IDE.
  • by SL Baur ( 19540 ) <steve@xemacs.org> on Thursday May 03, 2007 @06:24PM (#18980535) Homepage Journal
    No, they're not preprocessor statements. They are calls to actual nop functions (the patent calls them "void" functions which is highly misleading). Some example code:

    static void sw_break1(void)
    {
    }
    static void sw_break2(void)
    {
    }
    extern void do_something_with_side_effects(void);
    extern int some_function(int, int, int);
    void some_buggy_function(int a, b, c)
    {
      int d;
     
      do_something_with_side_effects();
      sw_break1();
      d = some_function(a, b, c);
      sw_break2();
    }
    Now, if you declare the functions sw_break1 and sw_break2 as software breakpoint functions to the debugger and not the function do_something_with_side_effects, the debugger will recognize that the nop calls to sw_break? should do something special and trap them. Since they are nop functions, obviously if the program is not being run under a debugger, nothing special happens and the program doesn't crash.

    The way the description is worded, the debugger is expected to be doing the equivalent of single stepping through the program at a source code level looking for calls to special nop functions. When it detects some such, it can perform some (debugger) user defined operation. Because these are specifically software breakpoints, they are built into the program at compile time and are always present whether or not the program is being debugged.

    The patent goes on to claim various methods of describing which void functions should be considered special by the debugger, including a broad all parameterless void functions are special. Any required special debug code is linked from a library and hence, this method of debugging allows one to enable and disable breakpoints dynamically in an read-only image executing directly off a ROM.

    I'm a programmer not a lawyer and I've never done embedded programming so I haven't much of a clue whether or not there's prior art, but I am certain that gdb or any debugger that modifies the executable image in any way are not within the claims of this patent.
  • by SL Baur ( 19540 ) <steve@xemacs.org> on Thursday May 03, 2007 @06:38PM (#18980753) Homepage Journal

    So a macro of something like #define SOFTWARE_BREAK asm { int 3; } which I have been using for years is now patented? That's laughable.
    No, that's not what they patented. The patent covers portable software breakpoints which are detected by mapping a special (void) function called to an action. The patent also covers a variety of methods of describing which void function calls should be trapped by the debugger and a variety of methods by which the name of the special void function call can be mapped into an action to perform.

    No assembly is involved, the method is processor agnostic. No open inline code is involved either as the breakpoints must be detectable by software looking for function calls.
  • by Nefarious Wheel ( 628136 ) * on Thursday May 03, 2007 @08:24PM (#18982043) Journal
    What the Vax $Fortran/nodebug function did was to compile the code excluding any source code lines that had a "D" in the first column (or was it the 6th? I wrote about a half-million lines of the stuff long, long ago, and I claim Eld as a defense). The code line was a special procedural noop (a line of normal Fortran code) that became active upon compilation with the $Fortran/debug option. The code -- a breakpoint or print statement, generally -- was embedded in the code thus compiled. This was different from $run/nodebug, which meant to run without the debugger present at execution time.

    This fits a pattern of "special nop function, programmer-defined and linked into the executable image and which must be mapped to various actions to be performed". As a literal construal of prior art it works, although I will admit Fortran IV is seldom used in embedded systems any more.

    YMMV, please turn off radio before entering carwash as we are not liable for broken antennae.

Today is a good day for information-gathering. Read someone else's mail file.

Working...