Mark Gritter (markgritter) wrote,
Mark Gritter

Have I mentioned how much I hate working with gdb?

gdb 7 is actually very nice. It's got python integration, and it displays STL container contents in a mostly(*) usable form.

But, its "find" command is utterly broken. It reports addresses happily. They just don't have the data you're searching for! bug report here. I mean, how hard is it to screw up searching for a substring(**)?

At Kealia we got sick enough of gdb screwing up C++ stuff that we hired a consultant(***) to fix the most problematic bugs.

(*) Except that if you want to refer to the 17th element of a vector, you can't just do foo[17] unless the program is running. And the pretty-printing has obscured the internals of the vector implementation you need to know(****) in order to access that 17th element programatically instead of counting it out on the screen.

(**) Fairly easy, I guess, when you are searching through a core file, whose layout on disk only loosely resembles its layout in the virtual address space you're searching. But c'mon.

(***) Who we then hired to work on product code, which meant that gdb work started suffering again.

(****) foo._M_impl._M_start[17], which I can never get right on the first try because I keep wanting to put underscores at the end of member variables, as is our coding convention.
Tags: geek, programming, rant, software
  • Post a new comment


    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.