From: ion@svn.reactos.com
KD System Rewrite:
This utterly broke the GDB stub, to the point that I can't even use DbgPrint anymore to try and figure out what's wrong. May I suggest you go and read http://www.joelonsoftware.com/articles/fog0000000069.html first, revert this patch (so I can get on with my work), and then, if you still feel this overwhelming urge to rewrite, test all the functionality you're replacing (you obviously didn't even consider a "/DEBUGPORT=GDB" and boot test necessary) before recommiting.
If I sound a little bit pissed-off, that's because it's exactly how I feel. This is not the first time I've been bitten by a rewrite. Back in January I spent a lot of time improving symbol handling and profiling, only to see you remove the profiling code a few weeks later, for a "new and improved" rewrite. Only problem is, the "new and improved" profiling system doesn't produce any output and is therefore useless. You said you would fix that in a weeks time, but now, months later, still nothing. I'll be damned if I'm going to let the same happen to the GDB stub, which I use on a daily basis.
We all break stuff sometimes (God knows I do) and I can live with that. I can even live with rewrites when they're necessary for binary compatibility (after all, that's what this project is all about) but I'm highly suspicious of rewrites because of "well, uhmm, I think my way is cleaner".
Gé van Geldorp.
Ge van Geldorp wrote:
From: ion@svn.reactos.com
KD System Rewrite:
This utterly broke the GDB stub, to the point that I can't even use DbgPrint anymore to try and figure out what's wrong. May I suggest you go and read http://www.joelonsoftware.com/articles/fog0000000069.html first, revert this patch (so I can get on with my work), and then, if you still feel this overwhelming urge to rewrite, test all the functionality you're replacing (you obviously didn't even consider a "/DEBUGPORT=GDB" and boot test necessary) before recommiting.
If I sound a little bit pissed-off, that's because it's exactly how I feel. This is not the first time I've been bitten by a rewrite. Back in January I spent a lot of time improving symbol handling and profiling, only to see you remove the profiling code a few weeks later, for a "new and improved" rewrite. Only problem is, the "new and improved" profiling system doesn't produce any output and is therefore useless. You said you would fix that in a weeks time, but now, months later, still nothing. I'll be damned if I'm going to let the same happen to the GDB stub, which I use on a daily basis.
We all break stuff sometimes (God knows I do) and I can live with that. I can even live with rewrites when they're necessary for binary compatibility (after all, that's what this project is all about) but I'm highly suspicious of rewrites because of "well, uhmm, I think my way is cleaner".
Gé van Geldorp.
Hi,
I'd just like to add that in my humble opinion, adding 20 lines of code to support a new debugger is 100x better then adding 1000. Imagine a complex debugging environment in ROS, where we support everything from re-assembling a function, disassembling, viewing the gdt, adding breakpoints, etc. Say we have 50 debugging functions. With the old system, each one would look like this:
if (KdDebuggerState & Foo) FooBreakPoint
if (KdDebuggerState & Foo1) Foo1BreakPoint
if (KdDebuggerState & Foo2) Foo2BreakPoint
if (KdDebuggerState & Foo3) Foo3BreakPoint
if (KdDebuggerState & Foo4) Foo4BreakPoint
if (KdDebuggerState & Foo5) Foo5BreakPoint
if (KdDebuggerState & Foo6) Foo6BreakPoint
....
if (KdDebuggerState & Foo10) Foo10BreakPoint
And this, for every single function. If you really think that's cleaner then parsing a list-entry and calling registered functions then err...ok, you're entitled to your opinion. So yeah "umm..my way is cleaner".
I removed the profiling code for binary compatibility and I asked you if that was ok. I know I haven't had time to write a profiler client and I'm sorry.
I'll fix the GDB stub.
Best regards, Alex Ionescu
Ge,
Please revert the rewrite if you can... I'm extremly sick and in the middle of a French, Physics, Math and Biology exam and have no time to even touch the code, as much as I want to, and I won't want to keep you waiting one more week.
Best regards, Alex Ionescu
From: Alex Ionescu
Please revert the rewrite if you can... I'm extremly sick and in the middle of a French, Physics, Math and Biology exam and have no time to even touch the code, as much as I want to, and I won't want to keep you waiting one more week.
I tried to revert, but unfortunately around 100 revisions have been made since your original commit, so a plain merge didn't work anymore. After fixing some of the merge failures, I still didn't have a workable GDB stub.
That means I might just as well try to fix things on HEAD. I've made some progress there.
Gé van Geldorp.