On Wed, 2023-08-16 at 20:31 -0700, metronome wrote: > Hi, > > We ran into a weird out of range issue of strconv.formatBits, hope > someone can shed a light on what could be the root cause, any comment > is highly appreciated. > > problem description: > random out of range at code, most of the time the indexing is a > huge int but we observed at least one exception (#2). > #1: runtime error: index out of range [18446744073709449339] > with length 200 > #2: runtime error: index out of range [102511] with length 200 > > Wild guesses: > 1. The machine code seems to suggest it's unlikely a data race or > memory corruption? But perhaps > relevant registers, like R10, had been saved and restored, then it > might be due to stack corruption? > Given that R12 is scratch reg, is it possible that R12 is clobbered > somehow, say, by signal handling? > > =================================================================== > 0x0000000000495b0a<+810>: mov %rdi,%r10 > 0x0000000000495b0d<+813>: shr %rdi > 0x0000000000495b10<+816>: mov %rax,%rsi > 0x0000000000495b13<+819>: movabs $0xa3d70a3d70a3d70b,%rax > 0x0000000000495b1d<+829>: mov %rdx,%r11 > 0x0000000000495b20<+832>: mul %rdi > 0x0000000000495b23<+835>: shr $0x5,%rdx > 0x0000000000495b27<+839>: imul $0x64,%rdx,%r12 > 0x0000000000495b2b<+843>: sub %r12,%r10 > 0x0000000000495b2e<+846>: lea (%r10,%r10,1),%rax > 0x0000000000495b32<+850>: lea 0x1(%rax),%rax > 0x0000000000495b36<+854>: nopw 0x0(%rax,%rax,1) > 0x0000000000495b3f<+863>: nop > 0x0000000000495b40<+864>: cmp $0xc8,%rax > 0x0000000000495b46<+870>: jae 0x495c8f > <strconv.formatBits+1199>
Go version? Function invocation context? -- 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. To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/c888ef0205e12ec6ef15a50ffc7a26d89313636c.camel%40kortschak.io.