Slashdot Mirror


Breakpoints have now been patented

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

82 of 412 comments (clear)

  1. Could someone please patent code comments? by Anonymous Coward · · Score: 5, Funny

    I'd love to have this as an excuse for not doing them. Thanks.

    1. Re:Could someone please patent code comments? by LordSnooty · · Score: 3, Interesting

      In that spirit, I hereby copyright the phrase "THIS IS A KLUDGE"

    2. Re:Could someone please patent code comments? by SL+Baur · · Score: 5, Insightful

      No that's not what they've patented. They've patented source level debugging with static break points. Apparently the developer litters the source code with SOFTWARE_BREAKPOINT; calls which turn into do-nothing statements if there is no debugger running the code. The target environment appears to be an embedded system like a cellphone.

      They have not patented hardware breakpoints, gdb, etc. and a huge advantage of their system is that you could apparently debug and selectively enable/disable breakpoints in a production ROM executable image.

      I know noone reads these patents when these kinds of articles go by, this is /., but is it too much to ask that the article submitter or the editor read them first?

    3. Re:Could someone please patent code comments? by keird · · Score: 5, Informative

      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.

    4. Re:Could someone please patent code comments? by AlphaFreak · · Score: 2, Interesting

      OMG! I've doing that on the mainframe since the eighties...

      CALL PLITEST;

      Or more recently:

      CALL CEETEST;

    5. Re:Could someone please patent code comments? by SL+Baur · · Score: 3, Informative
      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.
    6. Re:Could someone please patent code comments? by SL+Baur · · Score: 3, Informative

      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.
    7. Re:Could someone please patent code comments? by Nefarious+Wheel · · Score: 2, Informative
      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.

      --
      Do not mock my vision of impractical footwear
    8. Re:Could someone please patent code comments? by Almost-Retired · · Score: 4, Interesting

      if that's the case....I think I can find old code that I wrote back in the mid-90's that I did that...

      How in 104ee+99 kinds of hell can this patent stand? I was doing that in the late 70's, on an 1802 board called the Cosmac Super Elf, and 6 months later on a pair of z80 boards called the micro-professor. And in both cases I was doing it without an assembler! I was poor, so I looked the hex code up in the manual and entered it with the same hex editor I was using for the debugging, by inserting a breakpoint that took it back to the monitor and captured the machine state for a leasurely inspection. How the hell else did one debug machine code in those days?

      Hell and damnation, I'll bet Grace Hopper even used this technique. And I'd bet that same 6-pack she learned it from somebody that had been doing it for 5 years then...

      I can't fscking believe this, its only one step more complex than the (in)famous xor patent for moving the curser.

      Will someone Please deliver us from the insanity that is our patent system?

      --
      No Cheers this time, Gene

  2. Next up... by CdrGlork · · Score: 5, Funny

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

    1. Re:Next up... by jimstapleton · · Score: 3, Funny

      ok, if you do that, can I patent a system whereby human-readable text is converted into machine instructions?

      --
      34486853790
      Connection too slow for X forwarding? Try "ssh -CX user@host"
    2. Re:Next up... by Vihai · · Score: 5, Interesting
      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;
      }

    3. Re:Next up... by Jarjarthejedi · · Score: 3, Funny

      Patent Application 297641286876b

      A method by which a specific unbound sequence of comparisons are performed with the program being instructed to perform differing operation based on the results. Should none of the comparisons result in the machine determining that the variable being compared fits the condition a "default" condition shall be allowed. Using this system a large number of such Improved Jumps can be performed with less code and processing power.

      ((For those without programming knowledge, or sense of humor, the parent wants to post If-Then statements, this is a Switch statement. That is all))

      --
      There are two kinds of fool One says 'This is old therefore good' Another says 'This is new therefore better'- Dean Ing
    4. Re:Next up... by pclminion · · Score: 2, Insightful

      Wouldn't nested 'if..then's be better in this case?

      That requires one level of nesting for every initialized resource. That can become ridiculous very quickly. A rollback or "error ladder" is something you see in a lot of commercial AND open source code. Examples I know of include FreeType and the Linux kernel.

      It's only "unclear" in the sense that a for-loop was "unclear" to you when you first learned how to use it. This is a common, generally accepted idiom for the use of goto.

    5. Re:Next up... by Dachannien · · Score: 5, Funny

      Your code makes me want to throw up.

    6. Re:Next up... by teslar · · Score: 3, Funny

      There's no try/catch in C, I'm afraid.... you're thinking C++.

    7. Re:Next up... by Vihai · · Score: 2, Funny

      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

    8. Re:Next up... by gyranthir · · Score: 4, Funny

      Cobol already exists!!!

    9. Re:Next up... by Feyr · · Score: 4, Funny

      he did say human readable

    10. Re:Next up... by Chris+Burke · · Score: 2, Insightful

      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 other control structures (for loops etc) you put the return inside. For two, it can pollute branch prediction resources on some computers, specifically ones that use the BTB to identify call/returns for use with a Return Address Stack.

      Your function would be trivial to refactor without using any gotos, and it would be both easier to understand and easier on the hardware.

      --

      The enemies of Democracy are
    11. Re:Next up... by Anonymous Coward · · Score: 3, Funny

      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
    12. Re:Next up... by Anonymous Coward · · Score: 3, Insightful

      Great, now add ten more ifs there and see how readable it becomes vs. the goto solution with ten more labels and gotos

      What on earth is wrong with people? Doesn't anyone ever actually sit back and THINK about how to write readable, maintainable procedural code?! First of all, any half-sensible person would put these things into a structure, containing pointers to such allocated memory. Then you just have functions that initialize and destroy that structure.

      But, if you're hell-bent on allocating a bunch of memory in separate pointers, try this on for size:

      int allocstuff(void)
      {
                  int return_val = 0;

                  char *a = malloc(100);
                  if (!a) {
                              return -1;
                  }

                  char *b = malloc(100);
                  if (!b) {
                              free(a);
                              return -2;
                  }

                  char *c = malloc(100);
                  if (!c) {
                              free(a);
                              free(b);
                              return -3;
                  }

                  char *d = malloc(100);
                  if (!d) {
                              free(a);
                              free(b);
                              free(c);
                              return -4;
                  }
      .
      .
      .
                  return return_val;
      }

      Advantages:
      1) This way, it's very easy to read and follow the code. Any error causes you to abort immediately.
      2) It makes it very easy to assign different return codes for different errors.
      3) There's no complicated and messy multiply-nested control blocks here.

      Disadvantages:
      1) Later failure clauses can have a long list of free() statements. BUT, this way the code is simple to follow, and it's easy to verify any oversight.
      2) Potentially, you have code bloat, from lots of redundant free() statements. Only a problem if you're writing for some tiny-ass embedded system. In my experience, the number of people who THINK they need to worry about code bloat is a lot larger than the number of people who actually DO need to worry about code bloat.

      I can't count the number of times I've come across code that looks like the grandparent poster's, and re-wrote it. If you're writing for anything larger than a cellphone, and you think nested goto statements are the best way to handle this problem, you're not qualified to write procedural C code. Go learn OOP and use some higher-level language with a garbage collector.

            -D

    13. Re:Next up... by zizzo · · Score: 2, Funny

      There's no try/catch in C...
      There is only do {} while;

    14. Re:Next up... by Threni · · Score: 2, Insightful

      > That requires one level of nesting for every initialized resource. That can become ridiculous very
      > quickly.

      It becomes ridiculous less quickly than your spaghetti! If you have a lot of resources being allocated/deallocated often then obviously you'd want a different approach - perhaps a linked list (or some other collection) of resources to free up at some later point.

      You seem to admire the fact that this sort of code is in common use - even in Linux! Much of the code I see is a joke, so that doesn't surprise me.

      > It's only "unclear" in the sense that a for-loop was "unclear" to you when you first learned how to
      > use it.

      No, a for-loop is something you learn once and then never forget. Goto-ridden code is something you have to pick your way around every time you come to attempt to expand (or debug!) it.

    15. Re:Next up... by that+this+is+not+und · · Score: 2, Funny

      Does the software operating some subsystem for a guided missle scramble like crazy to deallocate all unneded memory before the warhead detonates?

  3. USPTO Link by MECC · · Score: 4, Informative

    Here.

    Got there from a search at their site...

    --
    "We are all geniuses when we dream"
    - E.M. Cioran
  4. Err, prior art? by RingDev · · Score: 3, Interesting

    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

    --
    "Most people in the U.S. wouldn't know they live in a tyrannical state if it walked up and grabbed their junk." - MyFirs
    1. Re:Err, prior art? by gstoddart · · Score: 2, Interesting

      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 had breakpoints in debuggers for a helluva long time.

      Any such patents, IMO, clearly don't pass muster of being anything other than obvious, pre-existing, or sneakily trying to write a special case which is barely different from any existing case.

      Cheers
      --
      Lost at C:>. Found at C.
  5. That's it. by Manos_Of_Fate · · Score: 5, Funny

    I'm applying for a patent on "A system of tubes, that carries information globally, so as to assist the procurement of pr0n."

    --
    Isn't enough that I ruined a pony, making a gift for you?
    1. Re:That's it. by blantonl · · Score: 3, Funny

      I'd love to see the prior "art" for this one.

      --
      Lindsay Blanton
      RadioReference.com
  6. No longer news by pembo13 · · Score: 2, Insightful

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

    --
    "Thanks for all the money you paid to us. We've used it to buy off ISO among other things" -Microsoft
  7. Prior Art by orbitalia · · Score: 2, Informative
    oh come on.. Conditional breakpoints have been around atleast since the mid eighties.. for example watcom's wd (watcom debugger) detailed here 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

    1. Re:Prior Art by Zontar_Thing_From_Ve · · Score: 2, 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 US government. In other words, many US government workers can't get equivalent jobs in private industry because equivalent jobs don't exist.
      2) US government workers don't want to lose their jobs any more than anyone else does.
      3) US government workers are very difficult to fire, leading to conditions of essential lifetime employment with very few exceptions. There are exceptions, but they are rare.

      Your typical US government employee stays with Uncle Sam because there are a few decent benefits (vacation and retirement benefits are superior to many companies in private industry) and the jobs are often low stress. Pay does lag behind private industry in many cases and because of #1 that I mentioned earlier, you have a lot of people who are screwed if they lose their government jobs because they don't have any useful skills for private industry. Where I worked, most younger employees with any motivation and useful skills (I work in IT) left after 3-7 years for better pay in private industry and better jobs. Government work is pretty boring, if safe.

      What has happened with the patent office is that now that they approve everything they can, they get more money coming in. More money coming in means that they are more important to the federal government because they bring in the bucks. They don't exist to consume tax dollars, they bring in revenue. To Uncle Sam, it's a win-win. He gets more money and businesses get "the tools they need" to protect their "valuable intellectual capital". More money to the Patent Office means they need more employees, which means they need more managers, which means pay goes up for managers. Now you have a bloated government office that has every incentive there is to protect itself and protecting itself can only be done if they bring in the bucks. Fewer patents means fewer examiners, which means fewer managers, which means people who have no useful skills for the outside world might be forced to find jobs in that outside world. Government employees are masters at protecting their own interests, so they just tell Congress and the President that they are doing a "vital service" to business. Business = money. Money = tax revenue. Tax revenue = good. Don't expect the President or anyone in Congress to ever think that patents = bad. Why on earth would reducing the size of a government agency that makes money instead of consuming money ever be good? I certainly respect Knuth, but the Patent Office guys will just paint him as an idealist in the academic world and ignore him. Remember, if patent reform ever happens, a lot of pissed off government employees, including managers, will lose their jobs because we'll need fewer of them and they will do everything they can to prevent that day from happening. Surely you all understand the idea of self-preservation.

  8. I think this is a bit different by AKAImBatman · · Score: 4, Insightful
    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.
    1. Re:I think this is a bit different by Mr.+Underbridge · · Score: 3, Insightful

      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.

    2. Re:I think this is a bit different by escay · · Score: 5, Informative
      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.
    3. Re:I think this is a bit different by AKAImBatman · · Score: 2, Insightful

      I can believe that. MULTICS was a truly incredible operating system, but is so poorly known by the programming public at large. It wouldn't surprise me at all if HP reinvented something that was already invented in MULTICS.

      It's simply too bad that Honeywell drove the system into the ground. We might all be using MULTICS derivatives today if Honeywell hadn't tried to compete against their own computers. :-(

    4. Re:I think this is a bit different by pclminion · · Score: 2, Informative

      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 ;-)

    5. Re:I think this is a bit different by Anonymous Coward · · Score: 2, Informative

      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.

  9. Re:Good and sad at the same time by jshriverWVU · · Score: 2, Insightful

    I'm curious why it was patented and then let go for free if that's the case. Patents are extremely expensive, and each year are more and more expensive. Just doesnt make sense to patent something so simple, and pay all that money for nothing.

  10. I have a ton of prior art on this one by bherman · · Score: 4, Funny

    Take any of my code....it has a ton of breakpoints. Usually any function with an input breaks at that point.

    --
    Error: Sig not found.
  11. What's a breakpoint? by seniorcoder · · Score: 3, Funny
    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?

    1. Re:What's a breakpoint? by exp(pi*sqrt(163)) · · Score: 4, Funny
      > How does a developer manage to work for a few years without knowing what a breakpoint is?

      His code always worked first time?

      --
      Doesn't it make you feel good to know that our freedoms are protected by politicans, lawyers and journalists.
    2. Re:What's a breakpoint? by niceone · · Score: 2, Funny

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

      by writing completely bug free code?

      What are these breakpoints of which you speak, anyway?

    3. Re:What's a breakpoint? by dodobh · · Score: 2, Funny

      printf(3)

      --
      I can throw myself at the ground, and miss.
  12. Fuck patents by dattaway · · Score: 2

    A bad law is an unenforceable law.

  13. How Patents Work by rilister · · Score: 3, Informative

    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.

    --
    'This writing business. Pencils and what-not. Over-rated if you ask me. Silly stuff. Nothing in it' - Eeyore
    1. Re:How Patents Work by karolgajewski · · Score: 4, Informative

      If you look up the application number in the USPTO, you will see that it has indeed matured to patent: US 7,055,140

      The enforcability of this patent, however, is left to the discretion of the patent owner.

      --
      - .k. -
  14. hardware debugger by Anonymous Coward · · Score: 5, Informative

    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.

    1. Re:hardware debugger by richie2000 · · Score: 4, Insightful

      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.

      --
      Money for nothing, pix for free
    2. Re:hardware debugger by thomasa · · Score: 2, Informative

      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.

    3. Re:hardware debugger by Anonymous Coward · · Score: 2, Insightful

      Readers are encouraged to read the claims and not spread FUD because they can.


      This is Slashdot... you must be new here.
  15. Re:Good and sad at the same time by RingDev · · Score: 3, Interesting

    "It's good to see that this patent is (or appears to be) registered as a free patent that can be used by anyone."

    I'm curious as to how you came to that conclusion. The patent has been published, but I don't see anything in the link stating that the company has a non-enforcement vow.

    -Rick

    --
    "Most people in the U.S. wouldn't know they live in a tyrannical state if it walked up and grabbed their junk." - MyFirs
  16. are you kidding? by nanosquid · · Score: 4, Insightful

    "Free patents online" is a service that lets you search for patents on-line for free; the patents themselves aren't "free".

  17. don't get yer panties in a wad yet by uab21 · · Score: 2, Informative

    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.

    1. Re:don't get yer panties in a wad yet by Teancum · · Score: 2, Informative

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

  18. I just patented CODE WITHOUT COMMENTS by giafly · · Score: 4, Insightful

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

    --
    Reduce, reuse, cycle
    1. Re:I just patented CODE WITHOUT COMMENTS by Vihai · · Score: 2, Informative

      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 :)

  19. in other patent pending news by psbrogna · · Score: 2, Funny

    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.

  20. Re:I think this is a bit different - Not Really by evought · · Score: 4, Insightful

    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.

  21. Well? Make a point! by EmbeddedJanitor · · Score: 4, Interesting
    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.

    --
    Engineering is the art of compromise.
    1. Re:Well? Make a point! by EmbeddedJanitor · · Score: 2, Informative
      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

      --
      Engineering is the art of compromise.
  22. Re:Seems somewhat original to me by thekel · · Score: 2

    Oops... I read the wrong part, mod my post down. It's not the patent.

  23. Step 2? by fishdan · · Score: 5, Funny

    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.

    --
    Nothing great was ever achieved without enthusiasm
    1. Re:Step 2? by sunwukong · · Score: 4, Funny

      If you really want to make money, patent not commenting code.

    2. Re:Step 2? by MindKata · · Score: 3, Funny

      "patent this, patent that etc.."

      Ok, I've just patented The Big Bang ... now you all have to pay up or I can exclude you from my reality.

      --
      There are 10 kinds of people in the world... those who understand binary and those who don't.
  24. Your missing something by SQLz · · Score: 2, Informative

    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.

  25. Not a patent by wmelnick · · Score: 2, Informative

    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.

  26. Re:Prior subject by badboy_tw2002 · · Score: 2, Informative

    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!

  27. DDT by rlp · · Score: 2, Informative

    DDT debugger running (originally) on the DEC PDP-1 supported breakpoints.

    http://en.wikipedia.org/wiki/Dynamic_debugging_tec hnique

    --
    [Insert pithy quote here]
  28. Re:Seems somewhat original to me by kalaf · · Score: 2, Insightful

    You read the article, You corrected yourself before someone else did, AND you want people to take your Karma away.

    I don't think you belong here...

  29. Re:Prior subject by the_lesser_gatsby · · Score: 2, Informative

    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?

  30. Re:Seems somewhat original to me by Teancum · · Score: 2, Informative

    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.

  31. Looks like it was granted last year by The_Dude · · Score: 2, Insightful

    If you enter the application number in the US PTO search function, you get: http://patft.uspto.gov/netacgi/nph-Parser?Sect1=PT O2&Sect2=HITOFF&p=1&u=%2Fnetahtml%2FPTO%2Fsearch-a dv.htm&r=1&f=G&l=50&d=PALL&S1=20030208745&OS=20030 208745&RS=20030208745

    Patent 7,055,140: Software breakpoints implementation via specially named function.

  32. Did anyone bother reading the Patent? by qazwart · · Score: 2, Informative

    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.

  33. Prior art! by Opportunist · · Score: 2, Insightful

    0xCC

    --
    We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
  34. The patentapplication was rejected twice... by thimon2k · · Score: 2, Informative

    From http://portal.uspto.gov/external/portal/pair 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.

  35. constructors by Per+Abrahamsen · · Score: 2, Informative

    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.

  36. Did this in the late 60's by Jeff1946 · · Score: 2, Interesting

    When I used to program a PDP-8, I would toggle in by hand a halt instruction to stop a misperforming program at a specific location so I could examine the accumulator or memory. Microsoft quickbasic (prewindows) had built in break point and watch capability. Assuming we allow software patents they must be non-obvious, non-trivial, and only of value if they give the user a valuable capability. Things like the Fast Fourier Transform as an example of a valuable algorithm or a spreadsheet, I believe Visicalc was the first, should qualify. Stuff like one-click shopping, no way.

  37. Going home now... by Tmack · · Score: 2, Funny
    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

    --
    Support TBI Research: http://www.raisinhope.org
  38. Recent Supreme Court ruling will kill this one by pcause · · Score: 2, Insightful

    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.

  39. Why reading patents is bad for you by nitecoder · · Score: 3, Insightful

    IANAL, but from what I understand there is a reason people don't read patents, at least in the US. If you violate a patent knowingly, you are liable for triple damages, whereas is you violate it unknowingly, only single damages.