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.

Reply via email to