From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 25846 invoked by alias); 5 Sep 2014 19:23:20 -0000 Mailing-List: contact gdb-prs-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-prs-owner@sourceware.org Received: (qmail 25819 invoked by uid 55); 5 Sep 2014 19:23:19 -0000 From: "cvs-commit at gcc dot gnu.org" To: gdb-prs@sourceware.org Subject: [Bug gdb/17235] possible bug extracting systemtap probe operand Date: Fri, 05 Sep 2014 19:23:00 -0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gdb X-Bugzilla-Component: gdb X-Bugzilla-Version: HEAD X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: cvs-commit at gcc dot gnu.org X-Bugzilla-Status: NEW X-Bugzilla-Priority: P2 X-Bugzilla-Assigned-To: sergiodj at redhat dot com X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit X-Bugzilla-URL: http://sourceware.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-SW-Source: 2014-q3/txt/msg00404.txt.bz2 https://sourceware.org/bugzilla/show_bug.cgi?id=17235 --- Comment #2 from cvs-commit at gcc dot gnu.org --- This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "gdb and binutils". The branch, master has been updated via 474ca4f6871d4addb7ce6a177245bce79c89550e (commit) from 514104634d0efd8955f7fd45cd509963e28212f6 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=474ca4f6871d4addb7ce6a177245bce79c89550e commit 474ca4f6871d4addb7ce6a177245bce79c89550e Author: Sergio Durigan Junior Date: Fri Sep 5 15:21:44 2014 -0400 Fix for PR gdb/17235: possible bug extracting systemtap probe operand This patch is a fix to PR gdb/17235. The bug is about an unused variable that got declared and set during one of the parsing phases of an SDT probe's argument. I took the opportunity to rewrite some of the code to improve the parsing. The bug was actually a thinko, because what I wanted to do in the code was to discard the number on the string being parsed. During this portion, the code identifies that it is dealing with an expression that begins with a sign ('+', '-' or '~'). This means that the expression could be: - a numeric literal (e.g., '+5') - a register displacement (e.g., '-4(%rsp)') - a subexpression (e.g., '-(2*3)') So, after saving the sign and moving forward 1 char, now the code needs to know if there is a digit followed by a register displacement prefix operand (e.g., '(' on x86_64). If yes, then it is a register operation. If not, then it will be handled recursively, and the code will later apply the requested operation on the result (either a '+', a '-' or a '~'). With the bug, the code was correctly discarding the digit (though using strtol unnecessarily), but it wasn't properly dealing with subexpressions when the register indirection prefix was '(', like on x86_64. This patch also fixes this bug, and includes a testcase. It passes on x86_64 Fedora 20. ----------------------------------------------------------------------- Summary of changes: gdb/ChangeLog | 7 +++ gdb/stap-probe.c | 40 ++++++++++--------- gdb/testsuite/ChangeLog | 6 +++ gdb/testsuite/gdb.arch/amd64-stap-wrong-subexp.S | 27 +++++++++++++ gdb/testsuite/gdb.arch/amd64-stap-wrong-subexp.exp | 41 ++++++++++++++++++++ 5 files changed, 103 insertions(+), 18 deletions(-) create mode 100644 gdb/testsuite/gdb.arch/amd64-stap-wrong-subexp.S create mode 100644 gdb/testsuite/gdb.arch/amd64-stap-wrong-subexp.exp -- You are receiving this mail because: You are on the CC list for the bug.