From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 13765 invoked by alias); 2 Nov 2012 10:59:30 -0000 Received: (qmail 13751 invoked by uid 22791); 2 Nov 2012 10:59:30 -0000 X-SWARE-Spam-Status: No, hits=-5.1 required=5.0 tests=AWL,BAYES_00,KHOP_RCVD_UNTRUST,KHOP_SPAMHAUS_DROP,KHOP_THREADED,RCVD_IN_HOSTKARMA_W,RCVD_IN_HOSTKARMA_WL,RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from mms3.broadcom.com (HELO mms3.broadcom.com) (216.31.210.19) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Fri, 02 Nov 2012 10:59:25 +0000 Received: from [10.9.200.133] by mms3.broadcom.com with ESMTP (Broadcom SMTP Relay (Email Firewall v6.5)); Fri, 02 Nov 2012 03:56:05 -0700 X-Server-Uuid: B86B6450-0931-4310-942E-F00ED04CA7AF Received: from mail-irva-13.broadcom.com (10.11.16.103) by IRVEXCHHUB02.corp.ad.broadcom.com (10.9.200.133) with Microsoft SMTP Server id 8.2.247.2; Fri, 2 Nov 2012 03:58:47 -0700 Received: from [10.177.73.58] (unknown [10.177.73.58]) by mail-irva-13.broadcom.com (Postfix) with ESMTP id 337D140FE3; Fri, 2 Nov 2012 03:59:14 -0700 (PDT) Message-ID: <5093A785.3060103@broadcom.com> Date: Fri, 02 Nov 2012 10:59:00 -0000 From: "Andrew Burgess" User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:16.0) Gecko/20121010 Thunderbird/16.0.1 MIME-Version: 1.0 To: gdb-patches@sourceware.org cc: "Pedro Alves" Subject: Re: Add fullname field in disassembly output References: <506DB4B8.5030001@broadcom.com> <5085B9D5.80508@broadcom.com> <50913B7F.10707@redhat.com> In-Reply-To: <50913B7F.10707@redhat.com> Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 7bit X-IsSubscribed: yes 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: 2012-11/txt/msg00036.txt.bz2 On 31/10/2012 2:53 PM, Pedro Alves wrote: >> Ok to commit? > > Not yet, sorry. This new field needs to be documented in the manual, and mentioned in NEWS. Sorry, I should have realised I'd need to do these things. Latest version of patch, includes fullname field, test updates, noted in documentation and in NEWS file. Is this Ok? Thanks, Andrew gdb/ChangeLog 2012-11-02 Andrew Burhess * source.c (print_source_lines_base): Add fullname field giving full path to file in mi output. * NEWS: Mention the new fullname field. diff --git a/gdb/NEWS b/gdb/NEWS index 069b84f..f953602 100644 --- a/gdb/NEWS +++ b/gdb/NEWS @@ -64,6 +64,9 @@ py [command] async record "=record-started" and "=record-stopped". ** Memory changes are now notified using new async record "=memory-changed". + ** The data-disassemble command response will include a "fullname" field + containing the full path to the source file when gdb can determine the + full path, and source has been requested in the output. *** Changes in GDB 7.5 diff --git a/gdb/source.c b/gdb/source.c index bd11c63..465382e 100644 --- a/gdb/source.c +++ b/gdb/source.c @@ -1301,6 +1301,13 @@ print_source_lines_base (struct symtab *s, int line, int stopline, int noerror) ui_out_field_int (uiout, "line", line); ui_out_text (uiout, "\tin "); ui_out_field_string (uiout, "file", s->filename); + if (ui_out_is_mi_like_p (uiout)) + { + const char *fullname = symtab_to_fullname (s); + + if (fullname != NULL) + ui_out_field_string (uiout, "fullname", fullname); + } ui_out_text (uiout, "\n"); } gdb/doc/ChangeLog 2012-11-02 Andrew Burgess * gdb.texinfo (GDB/MI Data Manipulation): Add fullname field to the example -data-disassemble output. diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo index 21db475..88ee695 100644 --- a/gdb/doc/gdb.texinfo +++ b/gdb/doc/gdb.texinfo @@ -30795,13 +30795,15 @@ Disassemble 3 instructions from the start of @code{main} in mixed mode: -data-disassemble -f basics.c -l 32 -n 3 -- 1 ^done,asm_insns=[ src_and_asm_line=@{line="31", -file="/kwikemart/marge/ezannoni/flathead-dev/devo/gdb/ \ - testsuite/gdb.mi/basics.c",line_asm_insn=[ +file="../../../src/gdb/testsuite/gdb.mi/basics.c", +fullname="/absolute/path/to/src/gdb/testsuite/ \ +gdb.mi/basics.c",line_asm_insn=[ @{address="0x000107bc",func-name="main",offset="0", inst="save %sp, -112, %sp"@}]@}, src_and_asm_line=@{line="32", -file="/kwikemart/marge/ezannoni/flathead-dev/devo/gdb/ \ - testsuite/gdb.mi/basics.c",line_asm_insn=[ +file="../../../src/gdb/testsuite/gdb.mi/basics.c", +fullname="/absolute/path/to/src/gdb/testsuite/ \ +gdb.mi/basics.c",line_asm_insn=[ @{address="0x000107c0",func-name="main",offset="4", inst="mov 2, %o0"@}, @{address="0x000107c4",func-name="main",offset="8", gdb/testsuite/ChangeLog 2012-11-02 Andrew Burgess * gdb.mi/mi-disassemble.exp: Expect fullname field in mi disassembly output. diff --git a/gdb/testsuite/gdb.mi/mi-disassemble.exp b/gdb/testsuite/gdb.mi/mi-disassemble.exp index 377ffde..695521a 100644 --- a/gdb/testsuite/gdb.mi/mi-disassemble.exp +++ b/gdb/testsuite/gdb.mi/mi-disassemble.exp @@ -115,6 +115,7 @@ proc test_disassembly_mixed {} { global mi_gdb_prompt global hex global decimal + global fullname_syntax set line_callee2_head [gdb_get_line_number "callee2 ("] set line_callee2_open_brace [expr $line_callee2_head + 1] @@ -125,7 +126,7 @@ proc test_disassembly_mixed {} { # -data-disassembly -s $pc -e "$pc+8" -- 1 mi_gdb_test "002-data-disassemble -f basics.c -l $line_callee2_open_brace -- 1" \ - "002\\^done,asm_insns=\\\[src_and_asm_line=\{line=\"$line_callee2_open_brace\",file=\".*basics.c\",line_asm_insn=\\\[\{address=\"$hex\",func-name=\"callee2\",offset=\"0\",inst=\".*\"\}.*\\\]\}.*,src_and_asm_line=\{line=\"$decimal\",file=\".*basics.c\",line_asm_insn=\\\[.*\{address=\"$hex\",func-name=\"callee2\",offset=\"$decimal\",inst=\".*\"\}\\\]\}\\\]" \ + "002\\^done,asm_insns=\\\[src_and_asm_line=\{line=\"$line_callee2_open_brace\",file=\".*basics.c\",fullname=\"${fullname_syntax}basics.c\",line_asm_insn=\\\[\{address=\"$hex\",func-name=\"callee2\",offset=\"0\",inst=\".*\"\}.*\\\]\}.*,src_and_asm_line=\{line=\"$decimal\",file=\".*basics.c\",fullname=\"${fullname_syntax}basics.c\",line_asm_insn=\\\[.*\{address=\"$hex\",func-name=\"callee2\",offset=\"$decimal\",inst=\".*\"\}\\\]\}\\\]" \ "data-disassemble file, line assembly mixed" # @@ -134,7 +135,7 @@ proc test_disassembly_mixed {} { # which we are now, even if we have specified that the range is only 2 insns. # mi_gdb_test "003-data-disassemble -s \$pc -e \"\$pc+4\" -- 1" \ - "003\\^done,asm_insns=\\\[src_and_asm_line=\{line=\"$decimal\",file=\".*basics.c\",line_asm_insn=\\\[\{address=\"$hex\",func-name=\"main\",offset=\"$decimal\",inst=\".*\"\}.*\{address=\"$hex\",func-name=\"main\",offset=\"$decimal\",inst=\".*\"\}\\\]\}\\\]" \ + "003\\^done,asm_insns=\\\[src_and_asm_line=\{line=\"$decimal\",file=\".*basics.c\",fullname=\"${fullname_syntax}basics.c\",line_asm_insn=\\\[\{address=\"$hex\",func-name=\"main\",offset=\"$decimal\",inst=\".*\"\}.*\{address=\"$hex\",func-name=\"main\",offset=\"$decimal\",inst=\".*\"\}\\\]\}\\\]" \ "data-disassemble range assembly mixed" } @@ -142,6 +143,7 @@ proc test_disassembly_mixed_with_opcodes {} { global mi_gdb_prompt global hex global decimal + global fullname_syntax set line_callee2_head [gdb_get_line_number "callee2 ("] set line_callee2_open_brace [expr $line_callee2_head + 1] @@ -152,7 +154,7 @@ proc test_disassembly_mixed_with_opcodes {} { # -data-disassembly -s $pc -e "$pc+8" -- 3 mi_gdb_test "002-data-disassemble -f basics.c -l $line_callee2_open_brace -- 3" \ - "002\\^done,asm_insns=\\\[src_and_asm_line=\{line=\"$line_callee2_open_brace\",file=\".*basics.c\",line_asm_insn=\\\[\{address=\"$hex\",func-name=\"callee2\",offset=\"0\",opcodes=\".*\",inst=\".*\"\}.*\\\]\}.*,src_and_asm_line=\{line=\"$decimal\",file=\".*basics.c\",line_asm_insn=\\\[.*\{address=\"$hex\",func-name=\"callee2\",offset=\"$decimal\",opcodes=\".*\",inst=\".*\"\}\\\]\}\\\]" \ + "002\\^done,asm_insns=\\\[src_and_asm_line=\{line=\"$line_callee2_open_brace\",file=\".*basics.c\",fullname=\"${fullname_syntax}basics.c\",line_asm_insn=\\\[\{address=\"$hex\",func-name=\"callee2\",offset=\"0\",opcodes=\".*\",inst=\".*\"\}.*\\\]\}.*,src_and_asm_line=\{line=\"$decimal\",file=\".*basics.c\",fullname=\"${fullname_syntax}basics.c\",line_asm_insn=\\\[.*\{address=\"$hex\",func-name=\"callee2\",offset=\"$decimal\",opcodes=\".*\",inst=\".*\"\}\\\]\}\\\]" \ "data-disassemble file, line assembly mixed with opcodes" # @@ -161,7 +163,7 @@ proc test_disassembly_mixed_with_opcodes {} { # which we are now, even if we have specified that the range is only 2 insns. # mi_gdb_test "003-data-disassemble -s \$pc -e \"\$pc+4\" -- 3" \ - "003\\^done,asm_insns=\\\[src_and_asm_line=\{line=\"$decimal\",file=\".*basics.c\",line_asm_insn=\\\[\{address=\"$hex\",func-name=\"main\",offset=\"$decimal\",opcodes=\".*\",inst=\".*\"\}.*\{address=\"$hex\",func-name=\"main\",offset=\"$decimal\",opcodes=\".*\",inst=\".*\"\}\\\]\}\\\]" \ + "003\\^done,asm_insns=\\\[src_and_asm_line=\{line=\"$decimal\",file=\".*basics.c\",fullname=\"${fullname_syntax}basics.c\",line_asm_insn=\\\[\{address=\"$hex\",func-name=\"main\",offset=\"$decimal\",opcodes=\".*\",inst=\".*\"\}.*\{address=\"$hex\",func-name=\"main\",offset=\"$decimal\",opcodes=\".*\",inst=\".*\"\}\\\]\}\\\]" \ "data-disassemble range assembly mixed with opcodes" } @@ -169,6 +171,7 @@ proc test_disassembly_mixed_lines_limit {} { global mi_gdb_prompt global hex global decimal + global fullname_syntax set line_main_head [gdb_get_line_number "main ("] set line_main_open_brace [expr $line_main_head + 1] @@ -182,15 +185,15 @@ proc test_disassembly_mixed_lines_limit {} { mi_gdb_test "print/x \$pc" "" "" mi_gdb_test "222-data-disassemble -f basics.c -l $line_main_body -n 20 -- 1" \ - "222\\^done,asm_insns=\\\[src_and_asm_line=\{line=\"$decimal\",file=\".*basics.c\",line_asm_insn=\\\[\{address=\"$hex\",func-name=\"main\",offset=\"0\",inst=\".*\"\},.*,\{address=\"$hex\",func-name=\"main\",offset=\"$decimal\",inst=\".*\"\}\\\]\}\]" \ + "222\\^done,asm_insns=\\\[src_and_asm_line=\{line=\"$decimal\",file=\".*basics.c\",fullname=\"${fullname_syntax}basics.c\",line_asm_insn=\\\[\{address=\"$hex\",func-name=\"main\",offset=\"0\",inst=\".*\"\},.*,\{address=\"$hex\",func-name=\"main\",offset=\"$decimal\",inst=\".*\"\}\\\]\}\]" \ "data-disassemble file, line, number assembly mixed" mi_gdb_test "222-data-disassemble -f basics.c -l $line_main_body -n 0 -- 1" \ - "222\\^done,asm_insns=\\\[src_and_asm_line=\{line=\"$line_main_open_brace\",file=\".*basics.c\",line_asm_insn=\\\[\\\]\}\\\]" \ + "222\\^done,asm_insns=\\\[src_and_asm_line=\{line=\"$line_main_open_brace\",file=\".*basics.c\",fullname=\"${fullname_syntax}basics.c\",line_asm_insn=\\\[\\\]\}\\\]" \ "data-disassemble file, line, number (zero lines) assembly mixed" mi_gdb_test "222-data-disassemble -f basics.c -l $line_main_body -n 50 -- 1" \ - "222\\^done,asm_insns=\\\[src_and_asm_line=\{line=\"$decimal\",file=\".*basics.c\",line_asm_insn=\\\[\{address=\"$hex\",func-name=\"main\",offset=\"0\",inst=\".*\"\}.*,\{address=\"$hex\",func-name=\"main\",offset=\"$decimal\",inst=\".*\"\}\\\]\}\]" \ + "222\\^done,asm_insns=\\\[src_and_asm_line=\{line=\"$decimal\",file=\".*basics.c\",fullname=\"${fullname_syntax}basics.c\",line_asm_insn=\\\[\{address=\"$hex\",func-name=\"main\",offset=\"0\",inst=\".*\"\}.*,\{address=\"$hex\",func-name=\"main\",offset=\"$decimal\",inst=\".*\"\}\\\]\}\]" \ "data-disassemble file, line, number (more than main lines) assembly mixed" }