diff options
author | Mark Wielaard <mjw@redhat.com> | 2015-05-19 23:08:00 +0200 |
---|---|---|
committer | Mark Wielaard <mjw@redhat.com> | 2015-05-27 17:17:51 +0200 |
commit | d76d73f490b1e097e650bb77277ae9ed1efd5b1a (patch) | |
tree | 03ddb833b702c1b0f4a42ad78a08a40d51820a76 | |
parent | 472890f580a83f1511e1ad83c10ea2b1d364cc8d (diff) | |
download | elfutils-d76d73f490b1e097e650bb77277ae9ed1efd5b1a.tar.gz |
addr2line: Always parse addresses as hex numbers.
We would sometimes interpret input addresses as decimal or octal.
That could be confusing and isn't what binutils addr2line does.
Be consistent and always treat input addresses as hex.
Signed-off-by: Mark Wielaard <mjw@redhat.com>
-rw-r--r-- | NEWS | 3 | ||||
-rw-r--r-- | src/ChangeLog | 5 | ||||
-rw-r--r-- | src/addr2line.c | 4 | ||||
-rw-r--r-- | tests/ChangeLog | 4 | ||||
-rwxr-xr-x | tests/run-addrname-test.sh | 2 |
5 files changed, 15 insertions, 3 deletions
@@ -2,6 +2,9 @@ Version 0.162 libdw: Install new header elfutils/known-dwarf.h. +addr2line: Input addresses are now always interpreted as hexadecimal + numbers, never as octal or decimal numbers. + Version 0.161 libdw: New function dwarf_peel_type. dwarf_aggregate_size now uses diff --git a/src/ChangeLog b/src/ChangeLog index f4ff1fb5..284b8860 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,5 +1,10 @@ 2015-05-20 Mark Wielaard <mjw@redhat.com> + * addr2line.c (handle_address): Call strtoumax with base 16. Make + sure all input has been processed. + +2015-05-20 Mark Wielaard <mjw@redhat.com> + * addr2line (argp_option): Group 'section' under "Input format options". diff --git a/src/addr2line.c b/src/addr2line.c index c7ff7f71..b1ff3680 100644 --- a/src/addr2line.c +++ b/src/addr2line.c @@ -532,8 +532,8 @@ static int handle_address (const char *string, Dwfl *dwfl) { char *endp; - uintmax_t addr = strtoumax (string, &endp, 0); - if (endp == string) + uintmax_t addr = strtoumax (string, &endp, 16); + if (endp == string || *endp != '\0') { bool parsed = false; int i, j; diff --git a/tests/ChangeLog b/tests/ChangeLog index a899947e..0e310121 100644 --- a/tests/ChangeLog +++ b/tests/ChangeLog @@ -1,3 +1,7 @@ +2015-05-20 Mark Wielaard <mjw@redhat.com> + + * run-addrname-test.sh: Make sure all input addresses are hex. + 2015-05-04 Max Filippov <jcmvbkbc@gmail.com> * backtrace-child.c (stdarg, main): Replace assert_perror with assert. diff --git a/tests/run-addrname-test.sh b/tests/run-addrname-test.sh index f954ee45..90e19df7 100755 --- a/tests/run-addrname-test.sh +++ b/tests/run-addrname-test.sh @@ -277,7 +277,7 @@ EOF # local l0local2, 0 # offset 12 testfiles testfile64 -testrun_compare ${abs_top_builddir}/src/addr2line -S -e testfile64 1 4 5 8 9 12 <<\EOF +testrun_compare ${abs_top_builddir}/src/addr2line -S -e testfile64 1 4 5 8 9 c <<\EOF gglobal2 ??:0 g0global2 |