[ros-dev] RE: [ros-svn] [ion] 14799: KD System Rewrite:
Alex Ionescu
ionucu at videotron.ca
Sun May 1 12:54:34 CEST 2005
Ge van Geldorp wrote:
>>From: ion at 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
More information about the Ros-dev
mailing list