https://bugs.kde.org/show_bug.cgi?id=502830
Bug ID: 502830 Summary: Valgrind memcheck on marvell-cn10xxx: illegal instruction Classification: Developer tools Product: valgrind Version: 3.24.0 Platform: Other OS: Linux Status: REPORTED Severity: normal Priority: NOR Component: memcheck Assignee: jsew...@acm.org Reporter: b...@hhlx.net Target Milestone: --- Created attachment 180283 --> https://bugs.kde.org/attachment.cgi?id=180283&action=edit the source code of example SUMMARY Valgrind memcheck on marvell-cn10xxx: illegal instruction STEPS TO REPRODUCE 1. compile the example the parameters below: -mcpu=neoverse-n2 -mbranch-protection=standard -fstack-protector-strong -O2 -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -Werror=format-security example.cpp -o example 2. valgrind --tool=memcheck ./example OBSERVED RESULT ==1223== Memcheck, a memory error detector ==1223== Copyright (C) 2002-2024, and GNU GPL'd, by Julian Seward et al. ==1223== Using Valgrind-3.24.0 and LibVEX; rerun with -h for copyright info ==1223== Command: ./example ==1223== ARM64 front end: branch_etc disInstr(arm64): unhandled instruction 0xD65F0BFF disInstr(arm64): 1101'0110 0101'1111 0000'1011 1111'1111 ==1223== valgrind: Unrecognised instruction at address 0x4014be8. ==1223== at 0x4014BE8: _dl_sysdep_parse_arguments (dl-sysdep.c:97) ==1223== by 0x4014D1B: _dl_sysdep_start (dl-sysdep.c:107) ==1223== by 0x40162BF: _dl_start_final (rtld.c:496) ==1223== by 0x40162BF: _dl_start (rtld.c:581) ==1223== by 0x401A193: (below main) (dl-start.S:32) ==1223== Your program just tried to execute an instruction that Valgrind ==1223== did not recognise. There are two possible reasons for this. ==1223== 1. Your program has a bug and erroneously jumped to a non-code ==1223== location. If you are running Memcheck and you just saw a ==1223== warning about a bad jump, it's probably your program's fault. ==1223== 2. The instruction is legitimate but Valgrind doesn't handle it, ==1223== i.e. it's Valgrind's fault. If you think this is the case or ==1223== you are not sure, please let us know and we'll try to fix it. ==1223== Either way, Valgrind will now raise a SIGILL signal which will ==1223== probably kill your program. ==1223== ==1223== Process terminating with default action of signal 4 (SIGILL): dumping core ==1223== Illegal opcode at address 0x4014BE8 ==1223== at 0x4014BE8: _dl_sysdep_parse_arguments (dl-sysdep.c:97) ==1223== by 0x4014D1B: _dl_sysdep_start (dl-sysdep.c:107) ==1223== by 0x40162BF: _dl_start_final (rtld.c:496) ==1223== by 0x40162BF: _dl_start (rtld.c:581) ==1223== by 0x401A193: (below main) (dl-start.S:32) ==1223== ==1223== HEAP SUMMARY: ==1223== in use at exit: 0 bytes in 0 blocks ==1223== total heap usage: 0 allocs, 0 frees, 0 bytes allocated ==1223== ==1223== All heap blocks were freed -- no leaks are possible ==1223== ==1223== For lists of detected and suppressed errors, rerun with: -s ==1223== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) Illegal instruction (core dumped) EXPECTED RESULT ==902567== Memcheck, a memory error detector ==902567== Copyright (C) 2002-2024, and GNU GPL'd, by Julian Seward et al. ==902567== Using Valgrind-3.24.0 and LibVEX; rerun with -h for copyright info ==902567== Command: ./example ==902567== Hello ==902567== ==902567== HEAP SUMMARY: ==902567== in use at exit: 0 bytes in 0 blocks ==902567== total heap usage: 2 allocs, 2 frees, 73,728 bytes allocated ==902567== ==902567== All heap blocks were freed -- no leaks are possible ==902567== ==902567== For lists of detected and suppressed errors, rerun with: -s ==902567== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) SOFTWARE/OS VERSIONS Linux: Linux marvell-cn10xxx 6.6.85-yocto-standard+ #1 SMP PREEMPT Tue Apr 15 17:44:38 CST 2025 aarch64 GNU/Linux ADDITIONAL INFORMATION ~# lscpu Architecture: aarch64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian CPU(s): 24 On-line CPU(s) list: 0-23 Vendor ID: ARM Model name: Neoverse-N2 Model: 0 Thread(s) per core: 1 Core(s) per cluster: 24 Socket(s): - Cluster(s): 1 Stepping: r0p0 CPU(s) scaling MHz: 100% CPU max MHz: 2100.0000 CPU min MHz: 500.0000 BogoMIPS: 2000.00 Flags: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 sm3 sm4 asimddp sha512 sve asimdfhm dit uscat ilrcpc flagm sb paca pacg dcpodp sve2 sveaes svepmull svebitperm svesha3 svesm4 flagm2 frint svei8mm svebf16 i8mm bf16 dgh rng bti -- You are receiving this mail because: You are watching all bug changes.