From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 4151 invoked by alias); 14 May 2008 01:05:46 -0000 Received: (qmail 4140 invoked by uid 22791); 14 May 2008 01:05:43 -0000 X-Spam-Check-By: sourceware.org Received: from smtp-out.google.com (HELO smtp-out.google.com) (216.239.33.17) by sourceware.org (qpsmtpd/0.31) with ESMTP; Wed, 14 May 2008 01:05:17 +0000 Received: from zps38.corp.google.com (zps38.corp.google.com [172.25.146.38]) by smtp-out.google.com with ESMTP id m4E157SV009684 for ; Wed, 14 May 2008 02:05:08 +0100 Received: from yw-out-2324.google.com (ywj3.prod.google.com [10.192.10.3]) by zps38.corp.google.com with ESMTP id m4E155J1015952 for ; Tue, 13 May 2008 18:05:06 -0700 Received: by yw-out-2324.google.com with SMTP id 3so1774152ywj.31 for ; Tue, 13 May 2008 18:05:05 -0700 (PDT) Received: by 10.150.79.32 with SMTP id c32mr474126ybb.156.1210727105217; Tue, 13 May 2008 18:05:05 -0700 (PDT) Received: by 10.151.99.13 with HTTP; Tue, 13 May 2008 18:05:05 -0700 (PDT) Message-ID: <8ac60eac0805131805m6216660ej7b8e859ce46cb084@mail.gmail.com> Date: Wed, 14 May 2008 08:16:00 -0000 From: "Paul Pluzhnikov" To: "Paul Pluzhnikov" , gdb-patches@sourceware.org, "Doug Evans" , "Michael Snyder" Subject: Re: [RFC] Fix for mishandling of "break 'pthread_create@GLIBC_2.2.5'" In-Reply-To: <8ac60eac0805131411q443b8f3awa464e090a5a44aaf@mail.gmail.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_7285_29829521.1210727105155" References: <8ac60eac0805131135h5e9dd46ev8b7f39e660bf0bb7@mail.gmail.com> <20080513184447.GA12349@caradoc.them.org> <8ac60eac0805131351s241d33a8pd7d9839c51e53a8d@mail.gmail.com> <20080513205941.GA21147@caradoc.them.org> <8ac60eac0805131411q443b8f3awa464e090a5a44aaf@mail.gmail.com> Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2008-05/txt/msg00422.txt.bz2 ------=_Part_7285_29829521.1210727105155 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline Content-length: 6783 On Tue, May 13, 2008 at 2:11 PM, Paul Pluzhnikov wrote: > On Tue, May 13, 2008 at 1:59 PM, Daniel Jacobowitz wrote: > > On Tue, May 13, 2008 at 01:51:57PM -0700, Paul Pluzhnikov wrote: > > > Actually, that appears to already work: > > > > Then I don't understand. If we're not looking for a field because of > > the ".1" then why are we looking for a field? > > I'll investigate and report back ... So the expression evaluation and the breakpoint evaluation go completely separate routes: p 'zzyx.1565' reaches lookup_minimal_symbol() this way: #0 lookup_minimal_symbol (name=0x930ca0 "zzyx.1565", sfile=0x0, objf=0x0) at ../../src/gdb/minsyms.c:178 #1 0x0000000000527f0a in c_parse () at c-exp.y:724 #2 0x00000000004eff0e in c_preprocess_and_parse () at ../../src/gdb/c-lang.c:298 #3 0x00000000004ba3fc in parse_exp_1 (stringptr=0x7fffffffe0d0, block=0x0, comma=) at ../../src/gdb/parse.c:991 #4 0x00000000004ba534 in parse_expression (string=0x7d61c2 "'zzyx.1565'") at ../../src/gdb/parse.c:1030 #5 0x000000000047a635 in print_command_1 (exp=0x7d61c2 "'zzyx.1565'", inspect=0, voidprint=1) at ../../src/gdb/printcmd.c:877 #6 0x0000000000406ec5 in execute_command (p=0x7d61cc "'", from_tty=0) at ../../src/gdb/top.c:466 #7 0x00000000004a13eb in command_handler (command=0x7d61c0 "p 'zzyx.1565'") at ../../src/gdb/event-top.c:514 #8 0x00000000004a1f90 in command_line_handler (rl=) at ../../src/gdb/event-top.c:745 #9 0x000000000054e903 in rl_callback_read_char () at ../../src/readline/callback.c:205 #10 0x00000000004a1579 in rl_callback_read_char_wrapper (client_data=0x930ca0) at ../../src/gdb/event-top.c:177 #11 0x00000000004a0153 in process_event () at ../../src/gdb/event-loop.c:341 #12 0x00000000004a0a68 in gdb_do_one_event (data=) at ../../src/gdb/event-loop.c:378 #13 0x000000000049d83b in catch_errors (func=0x4a08b0 , func_args=0x0, errstring=0x6034b6 "", mask=) at ../../src/gdb/exceptions.c:509 #14 0x000000000044a416 in tui_command_loop (data=) at ../../src/gdb/tui/tui-interp.c:153 #15 0x0000000000400359 in captured_command_loop (data=0x930ca0) at ../../src/gdb/main.c:99 #16 0x000000000049d83b in catch_errors (func=0x400350 , func_args=0x0, errstring=0x6034b6 "", mask=) at ../../src/gdb/exceptions.c:509 #17 0x0000000000400afe in captured_main (data=) at ../../src/gdb/main.c:882 #18 0x000000000049d83b in catch_errors (func=0x400390 , func_args=0x7fffffffe630, errstring=0x6034b6 "", mask=) at ../../src/gdb/exceptions.c:509 #19 0x0000000000400344 in gdb_main (args=0x0) at ../../src/gdb/main.c:891 #20 0x0000000000400316 in main (argc=, argv=0x0) at ../../src/gdb/gdb.c:33 but the "break 'pthread_create@@GLIBC_2.1'" reaches it like this (after my original patch; without it we don't reach lookup_minimal_symbol at all): #0 lookup_minimal_symbol (name=0x7fffffffdce1 "pthread_create@@GLIBC_2.1", sfile=0x0, objf=0x0) at ../../src/gdb/minsyms.c:178 #1 0x000000000048a94a in decode_line_1 (argptr=0x7fffffffe008, funfirstline=1, default_symtab=0x86ed38, default_line=1, canonical=0x7fffffffe0c8, not_found_ptr=0x7fffffffe0dc) at ../../src/gdb/linespec.c:1785 #2 0x0000000000457615 in do_captured_parse_breakpoint (ui=, data=) at ../../src/gdb/breakpoint.c:5325 #3 0x000000000049da70 in catch_exception (uiout=0x8299b0, func=0x457560 , func_args=0x7fffffffe070, mask=) at ../../src/gdb/exceptions.c:463 #4 0x000000000045d905 in break_command_really (arg=0x7d61dd "", cond_string=0x0, thread=0, parse_condition_and_thread=1, tempflag=0, hardwareflag=774778414, ignore_count=0, pending_break_support=AUTO_BOOLEAN_AUTO, ops=0x0, from_tty=0) at ../../src/gdb/breakpoint.c:5460 #5 0x000000000045e13e in break_command_1 (arg=0x7fffffffdce1 "pthread_create@@GLIBC_2.1", flag=, from_tty=) at ../../src/gdb/breakpoint.c:5617 #6 0x0000000000406ec5 in execute_command (p=0x7d61dc "'", from_tty=0) at ../../src/gdb/top.c:466 #7 0x00000000004a143b in command_handler (command=0x7d61c0 "b 'pthread_create@@GLIBC_2.1'") at ../../src/gdb/event-top.c:514 #8 0x00000000004a1fe0 in command_line_handler (rl=) at ../../src/gdb/event-top.c:745 #9 0x000000000054e953 in rl_callback_read_char () at ../../src/readline/callback.c:205 #10 0x00000000004a15c9 in rl_callback_read_char_wrapper (client_data=0x7fffffffdce1) at ../../src/gdb/event-top.c:177 #11 0x00000000004a01a3 in process_event () at ../../src/gdb/event-loop.c:341 #12 0x00000000004a0ab8 in gdb_do_one_event (data=) at ../../src/gdb/event-loop.c:378 #13 0x000000000049d88b in catch_errors (func=0x4a0900 , func_args=0x0, errstring=0x603516 "", mask=) at ../../src/gdb/exceptions.c:509 #14 0x000000000044a416 in tui_command_loop (data=) at ../../src/gdb/tui/tui-interp.c:153 #15 0x0000000000400359 in captured_command_loop (data=0x7fffffffdce1) at ../../src/gdb/main.c:99 #16 0x000000000049d88b in catch_errors (func=0x400350 , func_args=0x0, errstring=0x603516 "", mask=) at ../../src/gdb/exceptions.c:509 #17 0x0000000000400afe in captured_main (data=) at ../../src/gdb/main.c:882 #18 0x000000000049d88b in catch_errors (func=0x400390 , func_args=0x7fffffffe640, errstring=0x603516 "", mask=) at ../../src/gdb/exceptions.c:509 #19 0x0000000000400344 in gdb_main (args=0x0) at ../../src/gdb/main.c:891 #20 0x0000000000400316 in main (argc=, argv=0x0) at ../../src/gdb/gdb.c:33 The reason locate_first_half() is looking for '.' is perhaps explained by this comment: if (p[0] == '.' && strchr (p, ':') == NULL) { /* Java qualified method. Find the *last* '.', since the others are package qualifiers. */ > > The @ is not inherently special in ELF; there's other strange > > characters that are valid in symbol names (minsyms). So inside quotes > > we shouldn't be trying to interpret it as anything. > > Ok, I'll try to rewrite the patch to do just that. Attached. -- Paul Pluzhnikov 2008-05-13 Paul Pluzhnikov * linespec.c (decode_line_1): Don't try to interpret single-quoted text as linespec. ------=_Part_7285_29829521.1210727105155 Content-Type: text/plain; name=gdb-20080513-patch2.txt Content-Transfer-Encoding: base64 X-Attachment-Id: f_fg77lqb11 Content-Disposition: attachment; filename=gdb-20080513-patch2.txt Content-length: 2656 MjAwOC0wNS0xMyAgUGF1bCBQbHV6aG5pa292ICA8cHBsdXpobmlrb3ZAZ29v Z2xlLmNvbT4KCgkqIGxpbmVzcGVjLmMgKGRlY29kZV9saW5lXzEpOiBEb24n dCB0cnkgdG8gaW50ZXJwcmV0CglzaW5nbGUtcXVvdGVkIHRleHQgYXMgbGlu ZXNwZWMuCgpJbmRleDogbGluZXNwZWMuYwo9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09ClJDUyBmaWxlOiAvY3ZzL3NyYy9zcmMvZ2RiL2xpbmVzcGVjLmMsdgpy ZXRyaWV2aW5nIHJldmlzaW9uIDEuNzcKZGlmZiAtdSAtcCAtdSAtNiAtcjEu NzcgbGluZXNwZWMuYwotLS0gbGluZXNwZWMuYwkzIE1heSAyMDA4IDAwOjM3 OjM0IC0wMDAwCTEuNzcKKysrIGxpbmVzcGVjLmMJMTQgTWF5IDIwMDggMDA6 NDc6NDEgLTAwMDAKQEAgLTcyMSwyMiArNzIxLDMxIEBAIGRlY29kZV9saW5l XzEgKGNoYXIgKiphcmdwdHIsIGludCBmdW5maXIKICAgICAgY2hlY2tpbmcs IHdoZXJlIHdlIGFsbG93IHRoaW5ncyBsaWtlOgogICAgICAgICAoZ2RiKSBi cmVhayBjOjpmKGludCkKICAgKi8KIAogICBzZXRfZmxhZ3MgKCphcmdwdHIs ICZpc19xdW90ZWQsICZwYXJlbl9wb2ludGVyKTsKIAotICAvKiBDaGVjayB0 byBzZWUgaWYgaXQncyBhIG11bHRpcGFydCBsaW5lc3BlYyAod2l0aCBjb2xv bnMgb3IKLSAgICAgcGVyaW9kcykuICAqLworICBpZiAoKCphcmdwdHIpWzBd ID09ICdcJycpCisgICAgeworICAgICAgLyogRG9uJ3QgdHJ5IHRvIGludGVy cHJldCBhbnl0aGluZyBpbiBzaW5nbGUgcXVvdGVzLiAgKi8KKyAgICAgIHAg PSAiIjsKKyAgICAgIGlzX3F1b3RlX2VuY2xvc2VkID0gMDsKKyAgICB9Cisg IGVsc2UKKyAgICB7CisgICAgICAvKiBDaGVjayB0byBzZWUgaWYgaXQncyBh IG11bHRpcGFydCBsaW5lc3BlYyAod2l0aCBjb2xvbnMgb3IKKyAgICAgICAg IHBlcmlvZHMpLiAgKi8KIAotICAvKiBMb2NhdGUgdGhlIGVuZCBvZiB0aGUg Zmlyc3QgaGFsZiBvZiB0aGUgbGluZXNwZWMuCi0gICAgIEFmdGVyIHRoZSBj YWxsLCBmb3IgaW5zdGFuY2UsIGlmIHRoZSBhcmdwdHIgc3RyaW5nIGlzICJm b28uYzoxMjMiCi0gICAgIHAgd2lsbCBwb2ludCBhdCAiMTIzIi4gIElmIHRo ZXJlIGlzIG9ubHkgb25lIHBhcnQsIGxpa2UgImZvbyIsIHAKLSAgICAgd2ls bCBwb2ludCB0byAiIi4gSWYgdGhpcyBpcyBhIEMrKyBuYW1lLCBsaWtlICJB OjpCOjpmb28iLCBwIHdpbGwKLSAgICAgcG9pbnQgdG8gIjo6Qjo6Zm9vIi4g QXJncHRyIGlzIG5vdCBjaGFuZ2VkIGJ5IHRoaXMgY2FsbC4gICovCisgICAg ICAvKiBMb2NhdGUgdGhlIGVuZCBvZiB0aGUgZmlyc3QgaGFsZiBvZiB0aGUg bGluZXNwZWMuCisgICAgICAgICBBZnRlciB0aGUgY2FsbCwgZm9yIGluc3Rh bmNlLCBpZiB0aGUgYXJncHRyIHN0cmluZyBpcyAiZm9vLmM6MTIzIgorICAg ICAgICAgcCB3aWxsIHBvaW50IGF0ICIxMjMiLiAgSWYgdGhlcmUgaXMgb25s eSBvbmUgcGFydCwgbGlrZSAiZm9vIiwgcAorICAgICAgICAgd2lsbCBwb2lu dCB0byAiIi4gSWYgdGhpcyBpcyBhIEMrKyBuYW1lLCBsaWtlICJBOjpCOjpm b28iLCBwIHdpbGwKKyAgICAgICAgIHBvaW50IHRvICI6OkI6OmZvbyIuIEFy Z3B0ciBpcyBub3QgY2hhbmdlZCBieSB0aGlzIGNhbGwuICAqLwogCi0gIHAg PSBsb2NhdGVfZmlyc3RfaGFsZiAoYXJncHRyLCAmaXNfcXVvdGVfZW5jbG9z ZWQpOworICAgICAgcCA9IGxvY2F0ZV9maXJzdF9oYWxmIChhcmdwdHIsICZp c19xdW90ZV9lbmNsb3NlZCk7CisgICAgfQogCiAgIC8qIENoZWNrIGlmIHRo aXMgaXMgYW4gT2JqZWN0aXZlLUMgbWV0aG9kIChhbnl0aGluZyB0aGF0IHN0 YXJ0cyB3aXRoCiAgICAgIGEgJysnIG9yICctJyBhbmQgYSAnWycpLiAgKi8K ICAgaWYgKGlzX29iamNfbWV0aG9kX2Zvcm1hdCAocCkpCiAgICAgewogICAg ICAgaXNfb2JqY19tZXRob2QgPSAxOwo= ------=_Part_7285_29829521.1210727105155--