[Gambas-user] valgrind

Denis Crowther denisc at exemail.com.au
Thu Jul 25 07:52:24 CEST 2019


Hi Guys,

I keep getting a segmentation fault in one of my programs.

I've done this;
--------------
Mmm, I forgot to told you that you must compile the interpreter with 
debugging information enabled.

$ cd <gambas source directory>/main/gbx
$ make clean
$ make "CFLAGS=-O0 -g"
$ cd ..
$ sudo make install
-------------

then I run this;
valgrind --tool=memcheck --num-callers=50 PD.gambas
 > valgrind.out 2>&1


and I get this; (full copy attached)
valgrind: Unrecognised instruction at address 0x4014c08


anyone have any ideas?


-- 
Regards
Denis
-------------- next part --------------
==13746== Memcheck, a memory error detector
==13746== Copyright (C) 2002-2013, and GNU GPL'd, by Julian Seward et al.
==13746== Using Valgrind-3.10.1 and LibVEX; rerun with -h for copyright info
==13746== Command: /home/denis/Programming/Gambas/Punting/Punt_Data/PD.gambas
==13746== 
vex amd64->IR: unhandled instruction bytes: 0xF 0xAE 0x64 0x24 0x40 0x48 0x8B 0x73
vex amd64->IR:   REX=0 REX.W=0 REX.R=0 REX.X=0 REX.B=0
vex amd64->IR:   VEX=0 VEX.L=0 VEX.nVVVV=0x0 ESC=0F
vex amd64->IR:   PFX.66=0 PFX.F2=0 PFX.F3=0
==13746== valgrind: Unrecognised instruction at address 0x4014c08.
==13746==    at 0x4014C08: ??? (in /lib64/ld-2.29.so)
==13746== Your program just tried to execute an instruction that Valgrind
==13746== did not recognise.  There are two possible reasons for this.
==13746== 1. Your program has a bug and erroneously jumped to a non-code
==13746==    location.  If you are running Memcheck and you just saw a
==13746==    warning about a bad jump, it's probably your program's fault.
==13746== 2. The instruction is legitimate but Valgrind doesn't handle it,
==13746==    i.e. it's Valgrind's fault.  If you think this is the case or
==13746==    you are not sure, please let us know and we'll try to fix it.
==13746== Either way, Valgrind will now raise a SIGILL signal which will
==13746== probably kill your program.
==13746== 
==13746== Process terminating with default action of signal 4 (SIGILL)
==13746==  Illegal opcode at address 0x4014C08
==13746==    at 0x4014C08: ??? (in /lib64/ld-2.29.so)
==13746== valgrind: Unrecognised instruction at address 0x4014c08.
==13746==    at 0x4014C08: ??? (in /lib64/ld-2.29.so)
==13746== Your program just tried to execute an instruction that Valgrind
==13746== did not recognise.  There are two possible reasons for this.
==13746== 1. Your program has a bug and erroneously jumped to a non-code
==13746==    location.  If you are running Memcheck and you just saw a
==13746==    warning about a bad jump, it's probably your program's fault.
==13746== 2. The instruction is legitimate but Valgrind doesn't handle it,
==13746==    i.e. it's Valgrind's fault.  If you think this is the case or
==13746==    you are not sure, please let us know and we'll try to fix it.
==13746== Either way, Valgrind will now raise a SIGILL signal which will
==13746== probably kill your program.
==13746== 
==13746== Process terminating with default action of signal 4 (SIGILL)
==13746==  Illegal opcode at address 0x4014C08
==13746==    at 0x4014C08: ??? (in /lib64/ld-2.29.so)
==13746== 
==13746== HEAP SUMMARY:
==13746==     in use at exit: 0 bytes in 0 blocks
==13746==   total heap usage: 0 allocs, 0 frees, 0 bytes allocated
==13746== 
==13746== All heap blocks were freed -- no leaks are possible
==13746== 
==13746== For counts of detected and suppressed errors, rerun with: -v
==13746== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)


More information about the User mailing list