--- Begin Message ---
Package: valgrind
Version: 1:3.5.0-3
Severity: normal
I've attached a .s file from a test program of unclear bugginess, which
we tried to use valgrind to check. (It had fun and exciting strict
aliasing issues.) In the course of debugging it, we found an error in
valgrind --db-attach=yes.
Steps to reproduce:
1) gcc zigtest.s -o zigtest
2) valgrind --db-attach=yes ./zigtest
3) When valgrind stops at an uninitialized value warning, say y to
attach gdb.
4) "p/x $r8", which gave the value 0x30ecb1.
5) End gdb and let valgrind finish.
6) gdb ./zigtest
7) "break *0x0000000000400663" (the address of the instruction valgrind
stopped at)
8) "run"
9) "p/x $r8", which gave the value 0xb1.
10) Use "disas" on main to confirm that the instruction right before the
point valgrind stopped at runs "movzbl %r8b, %r8d", which should
zero all but the low 8 bits of %r8. Thus, valgrind's value seems
wrong.
- Josh Triplett
-- System Information:
Debian Release: squeeze/sid
APT prefers unstable
APT policy: (500, 'unstable'), (500, 'stable'), (1, 'experimental')
Architecture: amd64 (x86_64)
Kernel: Linux 2.6.33-2-amd64 (SMP w/2 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Versions of packages valgrind depends on:
ii libc6 2.10.2-6 Embedded GNU C Library: Shared lib
ii libc6-dbg 2.10.2-6 Embedded GNU C Library: detached d
Versions of packages valgrind recommends:
ii gdb 7.1-1 The GNU Debugger
Versions of packages valgrind suggests:
pn alleyoop <none> (no description available)
pn kcachegrind <none> (no description available)
pn valkyrie <none> (no description available)
-- no debconf information
.file "zigtest.c"
.section .rodata.str1.1,"aMS",@progbits,1
..LC0:
.string "%d\n"
.text
.p2align 4,,15
..globl main
.type main, @function
main:
..LFB28:
.cfi_startproc
pushq %rbp
.cfi_def_cfa_offset 16
xorl %edx, %edx
movl $811634969, %r9d
movl $-990909925, %r8d
movl $-1525007287, %edi
movl $-651539848, %esi
pushq %rbx
.cfi_def_cfa_offset 24
movl $255990488, %ecx
movl $-1021952437, %r11d
movl $-1780940711, %r10d
movl $325574490, %ebp
.cfi_offset 3, -24
.cfi_offset 6, -16
subq $2072, %rsp
.cfi_def_cfa_offset 2096
movq %rsp, %rax
.p2align 4,,10
.p2align 3
..L2:
movl %r10d, %ebx
sall $11, %ebx
xorl %ebp, %ebx
leal (%r11,%r10), %ebp
movl %r11d, %r10d
leal (%rbx,%rcx), %ecx
shrl $2, %r10d
xorl %ebp, %r10d
leal (%r10,%rsi), %esi
leal (%rcx,%r11), %ebp
movl %ecx, %r11d
sall $8, %r11d
xorl %ebp, %r11d
leal (%rsi,%rcx), %ebp
movl %esi, %ecx
leal (%r11,%rdi), %edi
shrl $16, %ecx
xorl %ebp, %ecx
leal (%rcx,%r8), %r8d
leal (%rdi,%rsi), %ebp
movl %edi, %esi
sall $10, %esi
movl %ecx, 1040(%rax,%rdx)
xorl %ebp, %esi
leal (%r8,%rdi), %ebp
movl %r8d, %edi
leal (%rsi,%r9), %r9d
shrl $4, %edi
movl %esi, 1044(%rax,%rdx)
xorl %ebp, %edi
leal (%rdi,%rbx), %ebx
leal (%r9,%r8), %ebp
movl %r9d, %r8d
sall $8, %r8d
movl %edi, 1048(%rax,%rdx)
xorl %ebp, %r8d
leal (%rbx,%r9), %ebp
movl %ebx, %r9d
leal (%r8,%r10), %r10d
shrl $9, %r9d
movl %r8d, 1052(%rax,%rdx)
xorl %ebp, %r9d
leal (%r9,%r11), %r11d
leal (%r10,%rbx), %ebp
movl %r10d, 1032(%rax,%rdx)
movl %r9d, 1056(%rax,%rdx)
movl %ebp, 1028(%rax,%rdx)
movl %r11d, 1036(%rax,%rdx)
addq $32, %rdx
cmpq $1024, %rdx
jne .L2
movl 2052(%rsp), %esi
movl 2056(%rsp), %r8d
leaq 512(%rax), %rbp
movq %rax, %rdx
movq %rax, %rcx
.p2align 4,,10
.p2align 3
..L3:
movl 1028(%rcx), %ebx
movl %esi, %edi
sall $13, %edi
xorl %esi, %edi
addl 1540(%rcx), %edi
movl %ebx, %esi
shrl $2, %esi
movzbl %sil, %esi
addl 1028(%rax,%rsi,4), %r8d
movl %edi, %esi
shrl $6, %esi
xorl %edi, %esi
addl 1544(%rcx), %esi
addl %edi, %r8d
movl %r8d, 1028(%rcx)
shrl $10, %r8d
movzbl %r8b, %r8d
addl 1028(%rax,%r8,4), %ebx
movl 1032(%rcx), %r8d
movl %r8d, %edi
shrl $2, %edi
movl %ebx, 4(%rcx)
movzbl %dil, %edi
movl 1028(%rax,%rdi,4), %r9d
leal (%rsi,%r9), %edi
leal (%rdi,%rbx), %ebx
leal 0(,%rsi,4), %edi
movl %ebx, 1032(%rcx)
shrl $10, %ebx
xorl %esi, %edi
movzbl %bl, %ebx
addl 1548(%rcx), %edi
addl 1028(%rax,%rbx,4), %r8d
movl 1036(%rcx), %ebx
movl %ebx, %esi
shrl $2, %esi
movl %r8d, 8(%rcx)
movzbl %sil, %esi
movl 1028(%rax,%rsi,4), %r9d
leal (%rdi,%r9), %esi
addl %r8d, %esi
movl 1040(%rcx), %r8d
movl %esi, 1036(%rcx)
shrl $10, %esi
movzbl %sil, %esi
addl 1028(%rax,%rsi,4), %ebx
movl %edi, %esi
shrl $16, %esi
xorl %edi, %esi
movl %r8d, %edi
addl 1552(%rcx), %esi
shrl $2, %edi
movzbl %dil, %edi
movl %ebx, 12(%rcx)
movl 1028(%rax,%rdi,4), %r9d
leal (%rsi,%r9), %edi
leal (%rdi,%rbx), %ebx
movl %ebx, 1040(%rcx)
shrl $10, %ebx
movzbl %bl, %ebx
addl 1028(%rax,%rbx,4), %r8d
movl %r8d, 16(%rcx)
addq $16, %rcx
cmpq %rbp, %rcx
jne .L3
movl %esi, 2052(%rsp)
movl %r8d, 2056(%rsp)
.p2align 4,,10
.p2align 3
..L4:
movl 1540(%rdx), %ebx
movl %esi, %ecx
movl 1544(%rdx), %edi
sall $13, %ecx
xorl %esi, %ecx
addl 1028(%rdx), %ecx
movl %ebx, %esi
shrl $2, %esi
movzbl %sil, %esi
addl 1028(%rax,%rsi,4), %r8d
movl %ecx, %esi
shrl $6, %esi
xorl %ecx, %esi
addl 1032(%rdx), %esi
addl %ecx, %r8d
movl %edi, %ecx
movl %r8d, 1540(%rdx)
shrl $2, %ecx
shrl $10, %r8d
movzbl %r8b, %r8d
movzbl %cl, %ecx
addl 1028(%rax,%r8,4), %ebx
movl 1028(%rax,%rcx,4), %r8d
leal (%rsi,%r8), %ecx
movl 1552(%rdx), %r8d
movl %ebx, 516(%rdx)
addl %ebx, %ecx
movl 1548(%rdx), %ebx
movl %ecx, 1544(%rdx)
shrl $10, %ecx
movzbl %cl, %ecx
addl 1028(%rax,%rcx,4), %edi
leal 0(,%rsi,4), %ecx
xorl %esi, %ecx
movl %ebx, %esi
addl 1036(%rdx), %ecx
shrl $2, %esi
movzbl %sil, %esi
movl %edi, 520(%rdx)
movl 1028(%rax,%rsi,4), %r9d
leal (%rcx,%r9), %esi
addl %edi, %esi
movl %esi, 1548(%rdx)
shrl $10, %esi
movzbl %sil, %esi
addl 1028(%rax,%rsi,4), %ebx
movl %ecx, %esi
shrl $16, %esi
xorl %ecx, %esi
movl %r8d, %ecx
addl 1040(%rdx), %esi
shrl $2, %ecx
movzbl %cl, %ecx
movl %ebx, 524(%rdx)
movl 1028(%rax,%rcx,4), %edi
leal (%rsi,%rdi), %ecx
addl %ebx, %ecx
movl %ecx, 1552(%rdx)
shrl $10, %ecx
movzbl %cl, %ecx
addl 1028(%rax,%rcx,4), %r8d
movl %r8d, 528(%rdx)
addq $16, %rdx
cmpq %rbp, %rdx
jne .L4
movl 1024(%rsp), %esi
movl $.LC0, %edi
xorl %eax, %eax
movl $0, 2052(%rsp)
movl $1, 2060(%rsp)
movl $1, 2056(%rsp)
movl $255, (%rsp)
call printf
addq $2072, %rsp
xorl %eax, %eax
popq %rbx
popq %rbp
ret
.cfi_endproc
..LFE28:
.size main, .-main
.ident "GCC: (Debian 4.4.2-9) 4.4.3 20100108 (prerelease)"
.section .note.GNU-stack,"",@progbits
--- End Message ---