Hi, This bug is a regression caused by some breakpoint canonicalization churn that committed a while ago. Basically: (gdb) break xxx::fun1 Breakpoint 1 at 0xblahblah: file main.cc, line blah. (gdb) run Starting program: a.out Error in re-setting breakpoint 1: Can't find member of namespace, class, struct, or union named "main.cc:xxx::fun1" As you can see, the first time decode_line_1 is called (with "xxx::fun1"), parsing the linespec succeeds. The breakpoint code stores a canonicalized version of this string ("main.cc:xxx::fun1"), and decode_line_1 is unable to properly parse this. The attached patch is an attempt to correct this. It essentially makes two changes: 1) look up the file symtab first; 2) pass this file symtab to any function which might call lookup_symbol[_*], and use this symtab to determine the appropriate block to search. The test case included here will require the patch for symtab/12704. I ran across this bug while working on that bug, so I've included a test for that specific case, too. Tested on the buildbot. Keith PR c++/12750 * linespec.c (get_search_block): New function. (find_methods): Add FILE_SYMTATB parameter and use it and get_search_block to pass an appropriate block to lookup_symbol_in_namespace. (decode_line_1): Record if *ARGPTR is single-quote enclosed. Check if *ARGPTR starts with a filename first. If it does, call locate_first_half again to locate the next "first half" of the linespec. Pass FILE_SYMTATB to decode_objc and decode_compound. Swallow the trailing single-quote if IS_SQUOTE_ENCLOSED. (locate_first_half): Stop on the first colon seen. (decode_compound): Add FILE_SYMTAB parameter. Pass FILE_SYMTAB to lookup_prefix_sym and find_method. (lookup_prefix_sym): Add FILE_SYMTAB parameter and use get_search_block with lookup_symbol. (find_method): Add FILE_SYMTAB parameter and pass it to find_methods. (decode_objc): Use get_search_block. testsuite/ChangeLog 2010-05-18 Keith Seitz PR c++/12750 * gdb.cp/static-method.cc: New file. * gdb.cp/static-method.exp: New file.