Hi there,
Thanks for the heads-up on gcc patch #88281: 6 regressions on arm.
I see from the log that the test timed-out and the core was dumped. I cannot reproduce this and can see nothing in the tree-dump that might cause a time out. I would appreciate some help on where the fault lies and what the cause might be.
Best regards
Paul Thomas
[CC: Thiago, for GDB crash]
Hi Paul,
The test crashes immediately, it doesn't time out. You see "timeout" in the output because we run all tests under "timeout" utility.
The backtrace is from the crash is: === rogram received signal SIGSEGV, Segmentation fault. 0xf7da9070 in arena_for_chunk (ptr=0x26208) at arena.c:156 156 arena.c: No such file or directory. (gdb) bt #0 0xf7da9070 in arena_for_chunk (ptr=0x26208) at arena.c:156 #1 arena_for_chunk (ptr=0x26208) at arena.c:160 #2 __GI___libc_free (mem=<optimized out>) at malloc.c:3390 #3 0x000125e8 in p () at /home/maxim.kuvyrkov/tcwg_gnu/abe/snapshots/gcc.git~master/gcc/testsuite/gfortran.dg/pr113363.f90:49 === which is the line ...
(gdb) up #3 0x000125e8 in p () at /home/maxim.kuvyrkov/tcwg_gnu/abe/snapshots/gcc.git~master/gcc/testsuite/gfortran.dg/pr113363.f90:49 49 deallocate (x, y) (gdb) p y $1 = ( _data = 0x26238, _vptr = 0x24090 <__vtab_CHARACTER_1_.7>, _len = 10 )
However, if I try to print "x", GDB crashes: === (gdb) p x $2 = ( _data = (0x6568, /build/gdb-aPmCGS/gdb-12.1/gdb/value.c:856: internal-error: value_contents_bits_eq: Assertion `offset1 + length <= TYPE_LENGTH (val1->enclosing_type) * TARGET_CHAR_BIT' failed. A problem internal to GDB has been detected, further debugging may prove unreliable. ----- Backtrace ----- 0x911165 ??? 0xb69e3b ??? 0xb69fdd ??? 0xc9b135 ??? 0xb78c97 ??? 0x9d6d65 ??? 0x9d7513 ??? 0x9d6813 ??? 0xb74e23 ??? 0x9d66e7 ??? 0xb74e23 ??? 0x92b193 ??? 0xb74f5b ??? 0xa81f3f ??? 0xa820f9 ??? 0x935699 ??? 0xb41929 ??? 0x9c7023 ??? 0x9c72e9 ??? 0x9c7973 ??? --------------------- /build/gdb-aPmCGS/gdb-12.1/gdb/value.c:856: internal-error: value_contents_bits_eq: Assertion `offset1 + length <= TYPE_LENGTH (val1->enclosing_type) * TARGET_CHAR_BIT' failed. A problem internal to GDB has been detected, further debugging may prove unreliable. ===
So try looking at the dumps of how "x" is created/freed.
The testcase is at https://people.linaro.org/~maxim.kuvyrkov/pr113363.exe ; it was compiled with:
/home/maxim.kuvyrkov/tcwg_gnu/abe/builds/destdir/armv8l-unknown-linux-gnueabihf/bin/armv8l-unknown-linux-gnueabihf-gfortran /home/maxim.kuvyrkov/tcwg_gnu/abe/snapshots/gcc.git~master/gcc/testsuite/gfortran.dg/pr113363.f90 -fdiagnostics-plain-output -fdiagnostics-plain-output -g -pedantic-errors -L/home/maxim.kuvyrkov/tcwg_gnu/abe/builds/armv8l-unknown-linux-gnueabihf/armv8l-unknown-linux-gnueabihf/gcc-gcc.git~master-stage2/armv8l-unknown-linux-gnueabihf/./libgfortran/.libs -L/home/maxim.kuvyrkov/tcwg_gnu/abe/builds/armv8l-unknown-linux-gnueabihf/armv8l-unknown-linux-gnueabihf/gcc-gcc.git~master-stage2/armv8l-unknown-linux-gnueabihf/./libatomic/.libs -lm -o ./pr113363.exe
It should run on any stock ubuntu-22.04 rootfs for armhf architecture.
Kind regards,
-- Maxim Kuvyrkov https://www.linaro.org
On Apr 10, 2024, at 18:31, Paul Richard Thomas paul.richard.thomas@gmail.com wrote:
Hi there,
Thanks for the heads-up on gcc patch #88281: 6 regressions on arm.
I see from the log that the test timed-out and the core was dumped. I cannot reproduce this and can see nothing in the tree-dump that might cause a time out. I would appreciate some help on where the fault lies and what the cause might be.
Best regards
Paul Thomas _______________________________________________ linaro-toolchain mailing list -- linaro-toolchain@lists.linaro.org To unsubscribe send an email to linaro-toolchain-leave@lists.linaro.org
Maxim Kuvyrkov maxim.kuvyrkov@linaro.org writes:
[CC: Thiago, for GDB crash]
Thanks!
However, if I try to print "x", GDB crashes:
(gdb) p x $2 = ( _data = (0x6568, /build/gdb-aPmCGS/gdb-12.1/gdb/value.c:856: internal-error: value_contents_bits_eq: Assertion `offset1 + length <= TYPE_LENGTH (val1->enclosing_type) * TARGET_CHAR_BIT' failed. A problem internal to GDB has been detected, further debugging may prove unreliable.
I can reproduce this crash with GDB 12.1 from Ubuntu 22.04, but testing with current tip of trunk detects the corruption in the inferior:
Program received signal SIGSEGV, Segmentation fault. 0xf7da9070 in arena_for_chunk (ptr=0x26208) at arena.c:156 warning: 156 arena.c: No such file or directory (gdb) bt #0 0xf7da9070 in arena_for_chunk (ptr=0x26208) at arena.c:156 #1 arena_for_chunk (ptr=0x26208) at arena.c:160 #2 __GI___libc_free (mem=<optimized out>) at malloc.c:3390 #3 0x000125e8 in p () at /home/thiago.bauermann/src/gcc/gcc/testsuite/gfortran.dg/pr113363.f90:49 (gdb) frame 3 #3 0x000125e8 in p () at /home/thiago.bauermann/src/gcc/gcc/testsuite/gfortran.dg/pr113363.f90:49 49 deallocate (x, y) (gdb) p x $1 = ( _data = (<error reading variable: access outside bounds of object>, _vptr = 0x24090 <__vtab_CHARACTER_1_.7>, _len = 6 ) (gdb)
GDB 14.1 was the first version that didn't crash, but it shows garbage contents for x._data:
(gdb) p x $1 = ( _data = (0x6568, 0x65), _vptr = 0x24090 <__vtab_CHARACTER_1_.7>, _len = 6 )
GDB 15.1 will be the first version that shows the out of bounds error message.
-- Thiago
linaro-toolchain@lists.linaro.org