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."
I'd love to have this as an excuse for not doing them. Thanks.
Next to be patented will be the GOTO statement, so ALL YOU LAZY PROGGERS WILL STOP USING IT!
Here.
Got there from a search at their site...
"We are all geniuses when we dream"
- E.M. Cioran
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
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?
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
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
Javascript + Nintendo DSi = DSiCade
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.
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.
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?
A bad law is an unenforceable law.
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
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.
"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
"Free patents online" is a service that lets you search for patents on-line for free; the patents themselves aren't "free".
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.
to prevent horrors like OP. Did you notice how the "free(b)" call was after an unconditional return? Somebody didn't.
Reduce, reuse, cycle
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.
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.
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.
Oops... I read the wrong part, mod my post down. It's not the patent.
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
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.
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.
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!
DDT debugger running (originally) on the DEC PDP-1 supported breakpoints.
c hnique
http://en.wikipedia.org/wiki/Dynamic_debugging_te
[Insert pithy quote here]
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...
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.
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.
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.
0xCC
We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
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.
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.
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.
tm
Support TBI Research: http://www.raisinhope.org
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.
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.