From: Shenghou Ma Date: Thu, 8 May 2014 05:25:56 +0000 (-0400) Subject: cmd/objdump: actually accept hex address without "0x" prefix. X-Git-Tag: go1.3beta2~124 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=5139293986cf202efe31d995e8dfb471b6f2038e;p=gostls13.git cmd/objdump: actually accept hex address without "0x" prefix. Fixes #7936. LGTM=alex.brainman, bradfitz, iant R=golang-codereviews, alex.brainman, bradfitz, iant CC=golang-codereviews https://golang.org/cl/100060043 --- diff --git a/src/cmd/objdump/main.go b/src/cmd/objdump/main.go index 6efdde2147..5602f17d64 100644 --- a/src/cmd/objdump/main.go +++ b/src/cmd/objdump/main.go @@ -10,7 +10,7 @@ // // Objdump disassembles the binary starting at the start address and // stopping at the end address. The start and end addresses are program -// counters written in hexadecimal without a leading 0x prefix. +// counters written in hexadecimal with optional leading 0x prefix. // // It prints a sequence of stanzas of the form: // @@ -40,12 +40,13 @@ import ( "log" "os" "strconv" + "strings" ) func printUsage(w *os.File) { fmt.Fprintf(w, "usage: objdump binary start end\n") fmt.Fprintf(w, "disassembles binary from start PC to end PC.\n") - fmt.Fprintf(w, "start and end are hexadecimal numbers with no 0x prefix.\n") + fmt.Fprintf(w, "start and end are hexadecimal numbers with optional leading 0x prefix.\n") } func usage() { @@ -79,11 +80,11 @@ func main() { log.Fatalf("reading %s: %v", flag.Arg(0), err) } - start, err := strconv.ParseUint(flag.Arg(1), 0, 64) + start, err := strconv.ParseUint(strings.TrimPrefix(flag.Arg(1), "0x"), 16, 64) if err != nil { log.Fatalf("invalid start PC: %v", err) } - end, err := strconv.ParseUint(flag.Arg(2), 0, 64) + end, err := strconv.ParseUint(strings.TrimPrefix(flag.Arg(2), "0x"), 16, 64) if err != nil { log.Fatalf("invalid end PC: %v", err) }