On Thu, May 2, 2019 at 2:50 PM Anthony Martin <al...@pbrane.org> wrote: > > What version of Go are you using? > > XXX ZZZ <emartinez1...@gmail.com> once said: > > fmt.(*pp).fmtString(0xc023c17740, 0x0, 0x5, 0xc000000076) > > /usr/local/go/src/fmt/print.go:448 +0x132 > > fmt.(*pp).printArg(0xc023c17740, 0x9978e0, 0xc016a68a30, 0x76) > > /usr/local/go/src/fmt/print.go:684 +0x880 > > fmt.(*pp).doPrintf(0xc023c17740, 0xa6e22f, 0x5, 0xc048c27818, 0x1, 0x1) > > /usr/local/go/src/fmt/print.go:1112 +0x3ff > > fmt.Sprintf(0xa6e22f, 0x5, 0xc048c27818, 0x1, 0x1, 0x80, 0xa36200) > > /usr/local/go/src/fmt/print.go:214 +0x66 > > This shows signs of memory corruption. The last argument passed to > fmtString (0xc000000076) should be the same as the last argument > passed to printArg (0x76 or 'v') but it has some high bits set. Also, > the pointer to the format string data changes from 0xa6e22f (which is > probably in the .rodata section of the binary) to 0x0. > > Something is amiss.
The change from 0x76 to 0xc000000076 does not necessarily indicate a problem. The stack backtrace does not know the types. The value here is a rune, which is 32 bits. The compiler will only set the low order 32 bits on the stack, leaving the high order 32 bits unset. So the 0xc000000000 could just be garbage left on the stack. I don't *think* the format string is changing. I think the 0 is from the string being printed, not the format string. They both happen to be length 5. Ian -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.