From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 5177 invoked by alias); 9 Apr 2010 04:11:41 -0000 Received: (qmail 4238 invoked by uid 22791); 9 Apr 2010 04:11:34 -0000 X-SWARE-Spam-Status: No, hits=-1.1 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,RCVD_IN_SORBS_WEB,TW_QC,TW_RQ X-Spam-Check-By: sourceware.org Received: from mail-gw0-f41.google.com (HELO mail-gw0-f41.google.com) (74.125.83.41) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Fri, 09 Apr 2010 04:11:30 +0000 Received: by gwb15 with SMTP id 15so1897001gwb.0 for ; Thu, 08 Apr 2010 21:11:28 -0700 (PDT) Received: by 10.101.190.1 with SMTP id s1mr1962669anp.32.1270786287506; Thu, 08 Apr 2010 21:11:27 -0700 (PDT) Received: from localhost.localdomain ([202.161.43.231]) by mx.google.com with ESMTPS id 7sm211996ywc.34.2010.04.08.21.11.25 (version=TLSv1/SSLv3 cipher=RC4-MD5); Thu, 08 Apr 2010 21:11:27 -0700 (PDT) From: crquan@gmail.com To: gdb-patches@sourceware.org, Hui Zhu Cc: Joel Brobecker , Eli Zaretskii Subject: [PATCH] disassemble support start,+length format Date: Fri, 09 Apr 2010 04:11:00 -0000 Message-Id: <1270786615-29934-1-git-send-email-crquan@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: 2010-04/txt/msg00220.txt.bz2 From: CHENG Renquan add new support for disassemble by "start,+length" format; ChangeLog,NEWS,doc/gdb.texinfo udpated, accordingly. BTW, I found two disassemble Changes in GDB 7.0 in NEWS, separated in two paragraphs, so I merged them into one paragraph. gdb/ChangeLog | 5 +++++ gdb/NEWS | 13 ++++++++----- gdb/cli/cli-cmds.c | 16 +++++++++++++--- gdb/doc/gdb.texinfo | 8 +++++--- 4 files changed, 31 insertions(+), 11 deletions(-) Index: gdb/ChangeLog =================================================================== RCS file: /cvs/src/src/gdb/ChangeLog,v retrieving revision 1.11594 diff -u -p -r1.11594 ChangeLog --- gdb/ChangeLog 9 Apr 2010 03:00:56 -0000 1.11594 +++ gdb/ChangeLog 9 Apr 2010 03:51:39 -0000 @@ -1,3 +1,8 @@ +2010-04-09 CHENG Renquan + + * gdb/cli/cli-cmds.c (disassemble_command): disassemble add support + "start,+length" format + 2010-04-08 Stan Shebs Pedro Alves Index: gdb/NEWS =================================================================== RCS file: /cvs/src/src/gdb/NEWS,v retrieving revision 1.367 diff -u -p -r1.367 NEWS --- gdb/NEWS 1 Apr 2010 14:11:22 -0000 1.367 +++ gdb/NEWS 9 Apr 2010 03:51:40 -0000 @@ -39,6 +39,11 @@ regular breakpoints. ARM Symbian arm*-*-symbianelf* +* Changed commands + +disassemble + The disassemble command, add "start,+length" form of two arguments support. + *** Changes in GDB 7.1 * C++ Improvements @@ -334,8 +339,9 @@ or the "condition" command is available. the target for evaluation using the same bytecode format as is used for tracepoint actions. -* "disassemble" command with a /r modifier, print the raw instructions -in hex as well as in symbolic form. +* The "disassemble" command with an optional /r modifier, print the raw +instructions in hex as well as in symbolic form; optional /m modifier to +print mixed source+assembly. * Process record and replay @@ -427,9 +433,6 @@ qXfer:siginfo:write packet that permited the stub to pass a process id was removed. Remote servers should use the `T' stop reply packet instead. -* The "disassemble" command now supports an optional /m modifier to print mixed -source+assembly. - * GDB now supports multiple function calling conventions according to the DWARF-2 DW_AT_calling_convention function attribute. Index: gdb/cli/cli-cmds.c =================================================================== RCS file: /cvs/src/src/gdb/cli/cli-cmds.c,v retrieving revision 1.100 diff -u -p -r1.100 cli-cmds.c --- gdb/cli/cli-cmds.c 9 Apr 2010 03:00:58 -0000 1.100 +++ gdb/cli/cli-cmds.c 9 Apr 2010 03:51:40 -0000 @@ -1047,8 +1047,9 @@ disassemble_current_function (int flags) - dump the assembly code for the function of the current pc disassemble [/mr] addr - dump the assembly code for the function at ADDR - disassemble [/mr] low high - - dump the assembly code in the range [LOW,HIGH) + disassemble [/mr] low,high + disassemble [/mr] low,+length + - dump the assembly code in the range [LOW,HIGH), or [LOW,LOW+length) A /m modifier will include source code with the assembly. A /r modifier will include raw instructions in hex with the assembly. */ @@ -1119,8 +1120,16 @@ disassemble_command (char *arg, int from else { /* Two arguments. */ + int incl_flag = 0; + low = pc; + if (arg[0] == '+') { + ++arg; + incl_flag = 1; + } high = parse_and_eval_address (arg); + if (incl_flag) + high += low; } print_disassembly (gdbarch, name, low, high, flags); @@ -1548,7 +1557,8 @@ Default is the function surrounding the With a /m modifier, source lines are included (if available).\n\ With a /r modifier, raw instructions in hex are included.\n\ With a single argument, the function surrounding that address is dumped.\n\ -Two arguments (separated by a comma) are taken as a range of memory to dump.")); +Two arguments (separated by a comma) are taken as a range of memory to dump,\n\ + in the form of \"start,end\", or \"start,+length\".")); set_cmd_completer (c, location_completer); if (xdb_commands) add_com_alias ("va", "disassemble", class_xdb, 0); Index: gdb/doc/gdb.texinfo =================================================================== RCS file: /cvs/src/src/gdb/doc/gdb.texinfo,v retrieving revision 1.699 diff -u -p -r1.699 gdb.texinfo --- gdb/doc/gdb.texinfo 9 Apr 2010 03:00:58 -0000 1.699 +++ gdb/doc/gdb.texinfo 9 Apr 2010 03:51:44 -0000 @@ -6549,9 +6549,11 @@ program counter of the selected frame. command is a program counter value; @value{GDBN} dumps the function surrounding this value. When two arguments are given, they should be separated by a comma, possibly surrounded by whitespace. The -arguments specify a range of addresses (first inclusive, second exclusive) -to dump. In that case, the name of the function is also printed (since -there could be several functions in the given range). +arguments specify a range of addresses, in the form of "start,end" or +"start,+length", stand for [start,end) and [start,start+length), (first +inclusive, second exclusive) to dump. In that case, the name of the +function is also printed (since there could be several functions in the +given range). The argument(s) can be any expression yielding a numeric value, such as @samp{0x32c4}, @samp{&main+10} or @samp{$pc - 8}. -- git v1.7.0.4, rqcheng at smu edu sg