Oops! Forgot to attach the actual patches. Fixed below. OK, so I have not one, but two patches! The first one is less interesting. It uses the language's name for the function, unless it's a C++ function, in which case it uses the (mangled) assembler name. It'll give a stab like .stabs "__ZN3bar3fooEv:F(0,1)",36,0,2,__ZN3bar3fooEv or .stabs "foo:F(0,1)",36,0,2,foo.11 The second one uses the 'printable name' for the function. That is, for C it's just the name, and for C++ it's the demangled version of its name. I am not at all sure it'll work, because it gives stabs like: .stabs "int bar::foo():F(0,1)",36,0,2,__ZN3bar3fooEv which I suspect can't be parsed. Could someone help me test these? It needs a machine that can use stabs and on which the GDB testsuite doesn't give too many false positives.