Re: GDB syntax error if class members overlap C++ header file names
Paul Smith <[email protected]>
| Newsgroups | gmane.comp.gdb.devel |
|---|---|
| Message-ID | <[email protected]> |
On Tue, 2018-02-13 at 10:52 -0500, Simon Marchi wrote: > On 2018-02-13 10:37, Paul Smith wrote: > > Has anyone had any thoughts about > > https://sourceware.org/bugzilla/show_bug.cgi?id=22231 > > > > This is a really unfortunate bug, because there are so many useful > > symbol names which are also C++ header files! Just ran into this > > again with "queue". > > Hi Paul, > > This looks like an issue that has been fixed recently, but it's not > in 8.1, only master. > > https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=commit;h=5 > 9498c305e6f1db2a1ed8d44cb58f0d24ec092fe > > Can you verify if it works for you? I ran applied SHA 59498c305e6f1db2a1ed8d44cb58f0d24ec092fe as a patch to 8.1 (but had to toss the changelog diffs... yet another reason to stop including them as source code artifacts...) and that does fix the main problem... awesome! There's still a weird error if there's no symbol in context; my first example the the bug still prints "syntax error in expression, near `'" rather than something more reasonable such as "No symbol "memory" in current context". That's probably still something that should be fixed, but it's basically an error messaging issue. However, if there's a "memory" symbol in the current context (either implicitly as in we're in a method and the class has a "memory" member, or using something like foo.memory) it will find and print the right thing. So that's excellent! Thanks.