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."
Could someone please patent code comments? (Score:5, Funny)
Step 2? (Score:5, Funny)
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.
Re:Step 2? (Score:5, Funny)
Re: (Score:3, Funny)
Ok, I've just patented The Big Bang
Re:Could someone please patent code comments? (Score:4, Interesting)
Going home now... (Score:3, Funny)
tm
Re:Could someone please patent code comments? (Score:5, Insightful)
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
Re:Could someone please patent code comments? (Score:5, Informative)
Why reading patents is bad for you (Score:3, Insightful)
Re:Could someone please patent code comments? (Score:4, Informative)
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.
Re:Could someone please patent code comments? (Score:5, Interesting)
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
Re:Could someone please patent code comments? (Score:4, Informative)
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.
Re: (Score:3, Informative)
Next up... (Score:5, Funny)
Re: (Score:2)
Re: (Score:2)
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!
Re:Next up... (Score:4, Funny)
Re:Next up... (Score:4, Funny)
Re:Next up... (Score:5, Funny)
Re:Next up... (Score:4, Funny)
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))
Actually, it's better than that. (Score:2)
hardware debugger (Score:5, Informative)
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.
Re:hardware debugger (Score:5, Insightful)
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)
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)
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:
I just patented CODE WITHOUT COMMENTS (Score:5, Insightful)
Re: (Score:3, Informative)
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 :)
constructors (Score:3, Informative)
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.
Re: (Score:2)
Re: (Score:2, Funny)
Re: (Score:3, 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
Re: (Score:2)
Re:Next up... (Score:5, Funny)
Mod parent up... (Score:2)
Re: (Score:2)
int allocstuff(void) {
int return_val = 0;
char *a = malloc(100);
if (!a) {
return_val = -1;
} else {
char *b = malloc(100);
if (!b) {
Re: (Score:3, Insightful)
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
Re: (Score:2)
Re: (Score:3, Insightful)
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)
I couldn't have put it better myself.
Re: (Score:3, 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.
Re: (Score:2)
Re: (Score:2)
Re:Next up... (Score:4, Funny)
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
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.
Cheers
USPTO Link (Score:5, Informative)
Got there from a search at their site...
Re: (Score:2)
omg [google.ca]
Tom
Err, prior art? (Score:4, Interesting)
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)
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)
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.
Re: (Score:3, Informative)
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: [techdirt.com]
That's it. (Score:5, Funny)
Re:That's it. (Score:4, Funny)
No longer news (Score:3, Insightful)
Re: (Score:2)
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)
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)
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 think this is a bit different (Score:5, Insightful)
Re:I think this is a bit different (Score:4, 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.
Re:I think this is a bit different - Not Really (Score:5, Insightful)
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.
Re:I think this is a bit different (Score:5, Informative)
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: (Score:2)
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?
Re: (Score:2)
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.
Re: (Score:2)
Re: (Score:3, 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 f
Re: (Score:3, Insightful)
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.
I have a ton of prior art on this one (Score:5, Funny)
Re: (Score:2)
What's a breakpoint? (Score:3, Funny)
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?
Re: (Score:2)
Re: (Score:2)
Re:What's a breakpoint? (Score:5, Funny)
His code always worked first time?
Re: (Score:3, Funny)
Fuck patents (Score:3)
How Patents Work (Score:3, Informative)
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.
Re:How Patents Work (Score:4, Informative)
The enforcability of this patent, however, is left to the discretion of the patent owner.
don't get yer panties in a wad yet (Score:3, Informative)
Re: (Score:3, Informative)
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
Hey, I am working on my patent (Score:2)
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.
Intel has prior art (Score:2)
Along with a big IBM boat anchor of a laser printer, our lab was always nice and toasty in the wintertime
Dammit I'm too late (Score:2)
FORTH (Score:2)
in other patent pending news (Score:3, Funny)
Prior subject (Score:2)
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
Your missing something (Score:3, Informative)
DDT (Score:3, Informative)
http://en.wikipedia.org/wiki/Dynamic_debugging_te
Did anyone bother reading the Patent? (Score:3, Informative)
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)
Recent Supreme Court ruling will kill this one (Score:3, Insightful)
Re: (Score:3, Insightful)
Re: (Score:2)
Two possible suggestions:
1) Patent it and make it open before some less-friendly entity tries to do it.
2) To demonstrate how ridiculous software patents are by getting something as absurd as this patented.
I mean, let's face it, if the patent examiners granted this pat
Re: (Score:2)
Re:Good and sad at the same time (Score:4, Interesting)
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
are you kidding? (Score:5, Insightful)
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
Re: (Score:3, Informative)
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 CP