Version: 3.4.0 (using Devel) Compiler: PPC 440EP G++ using powerpc-montavista-linux-gnu ADK OS: Linux Installed from: Compiled sources I am systematically getting the following illegal instruction on PPC 440EPX - that sends SIGILL to my programm. I am attaching the traces of the run with --leak-check=full --error-limit=no --show-reachable=yes --track-origins=yes --log-file=valgrind.txt let me know if there would be better options to run with with or command to launch to analyze this problem. =7232== Uninitialised value was created by a stack allocation ==7232== at 0xFEBF47C: (within /usr/local/lib/libsqlite3.so.0.8.6) disInstr(ppc): unhandled instruction: 0x7D20009D primary 31(0x1F), secondary 157(0x9D) ==7232== valgrind: Unrecognised instruction at address 0xfe9be20. ==7232== Your program just tried to execute an instruction that Valgrind ==7232== did not recognise. There are two possible reasons for this. ==7232== 1. Your program has a bug and erroneously jumped to a non-code ==7232== location. If you are running Memcheck and you just saw a ==7232== warning about a bad jump, it's probably your program's fault. ==7232== 2. The instruction is legitimate but Valgrind doesn't handle it, ==7232== i.e. it's Valgrind's fault. If you think this is the case or ==7232== you are not sure, please let us know and we'll try to fix it. ==7232== Either way, Valgrind will now raise a SIGILL signal which will ==7232== probably kill your program.
Valgrdin version used is 3.3.4, I will test with trunk but I expect the same behavior. I am not sure about the component causing the root problem, memcheck ?
Created attachment 30203 [details] gunziped valgrind log upon disInstr(ppc)
Getting the same error with valgrind trunk disInstr(ppc): unhandled instruction: 0x7D20009D primary 31(0x1F), secondary 157(0x9D) ==12518== valgrind: Unrecognised instruction at address 0xfe9be20.
The tool name is missing in your bug report. Please read http://valgrind.org/support/bug_reports.html. On this web page you can find the following instructions: When you report a bug, please give the following information: * The output of uname -a. * The full output you get when you run your program under Valgrind with the -v flag.
Not sure how to edit the tool name after hand, do you have a way to edit after hand, I tried to follow the creation wizard, not sure if it took it ..? tool = valgrdind. root@sebastien:~# uname -a Linux sebastien 2.6.18_pro500-440epx_eval #1 Tue Jan 13 09:11:18 CST 2009 ppc unknown I am attaching the output of valgrind -v <bin> --log-file=valgrindv.txt
Created attachment 30220 [details] gunzipped log of valgrind -v <bin> this is trunk as of 1/12/2009 (same problem with valgrdind 3.4.0). The following patch had to be applied first http://bugs.kde.org/attachment.cgi?id=30135 for the following bug http://bugs.kde.org/show_bug.cgi?id=176926 (trunked as of 2009-01-13 according to bug)
Here follows the end of the log for /root/valgrind/bin/valgrind --tool=none --trace-flags=10000001 --trace-notbelow=0 --log-file=/log/rhclogs/voice.val.log <my_binary> ------------------------ Front end ------------------------ 0xFA3E0D8: li r0,234 ------ IMark(0xFA3E0D8, 4) ------ t0 = GET:I32(0) t1 = GET:I32(0) t2 = 0xEA:I32 PUT(0) = t2 0xFA3E0DC: stw r30,24(r1) ------ IMark(0xFA3E0DC, 4) ------ PUT(896) = 0xFA3E0DC:I32 t4 = GET:I32(0) t3 = GET:I32(120) t5 = Add32(GET:I32(4),0x18:I32) STbe(t5) = t3 0xFA3E0E0: mflr r30 ------ IMark(0xFA3E0E0, 4) ------ PUT(896) = 0xFA3E0E0:I32 t6 = GET:I32(120) PUT(120) = GET:I32(900) 0xFA3E0E4: stw r31,28(r1) ------ IMark(0xFA3E0E4, 4) ------ PUT(896) = 0xFA3E0E4:I32 t8 = GET:I32(0) t7 = GET:I32(124) t9 = Add32(GET:I32(4),0x1C:I32) STbe(t9) = t7 0xFA3E0E8: mr r31,r3 ------ IMark(0xFA3E0E8, 4) ------ PUT(896) = 0xFA3E0E8:I32 t10 = GET:I32(12) t12 = GET:I32(12) t11 = t10 PUT(124) = t11 0xFA3E0EC: lwz r9,-116(r30) ------ IMark(0xFA3E0EC, 4) ------ PUT(896) = 0xFA3E0EC:I32 t13 = Add32(GET:I32(120),0xFFFFFF8C:I32) PUT(36) = LDbe:I32(t13) 0xFA3E0F0: stw r29,20(r1) ------ IMark(0xFA3E0F0, 4) ------ PUT(896) = 0xFA3E0F0:I32 t15 = GET:I32(0) t14 = GET:I32(116) t16 = Add32(GET:I32(4),0x14:I32) STbe(t16) = t14 0xFA3E0F4: mr r3,r31 ------ IMark(0xFA3E0F4, 4) ------ PUT(896) = 0xFA3E0F4:I32 t17 = GET:I32(124) t19 = GET:I32(124) t18 = t17 PUT(12) = t18 0xFA3E0F8: add r29,r9,r2 ------ IMark(0xFA3E0F8, 4) ------ PUT(896) = 0xFA3E0F8:I32 t20 = GET:I32(36) t21 = GET:I32(8) t22 = Add32(t20,t21) PUT(116) = t22 0xFA3E0FC: sc ------ IMark(0xFA3E0FC, 4) ------ PUT(896) = 0xFA3E0FC:I32 PUT(1096) = GET:I32(896) goto {Sys_syscall} 0xFA3E100:I32 . 0 FA3E0D8 40 . 38 00 00 EA 93 C1 00 18 7F C8 02 A6 93 E1 00 1C 7C 7F 1B 78 81 3E FF 8C 93 A1 00 14 7F E3 FB 78 7F A9 12 14 44 00 00 02 ------------------------ Assembly ------------------------ mflr %r4 7C 88 02 A6 li_word %r5,0x000000EA 38 A0 00 EA stw %r5,0(%r31) 90 BF 00 00 li_word %r5,0x0FA3E0DC 3C A0 0F A3 60 A5 E0 DC stw %r5,896(%r31) 90 BF 03 80 lwz %r5,4(%r31) 80 BF 00 04 lwz %r6,120(%r31) 80 DF 00 78 stw %r6,24(%r5) 90 C5 00 18 lwz %r6,900(%r31) 80 DF 03 84 stw %r6,120(%r31) 90 DF 00 78 li_word %r7,0x0FA3E0E4 3C E0 0F A3 60 E7 E0 E4 stw %r7,896(%r31) 90 FF 03 80 lwz %r7,124(%r31) 80 FF 00 7C stw %r7,28(%r5) 90 E5 00 1C lwz %r7,12(%r31) 80 FF 00 0C stw %r7,124(%r31) 90 FF 00 7C li_word %r8,0x0FA3E0EC 3D 00 0F A3 61 08 E0 EC stw %r8,896(%r31) 91 1F 03 80 lwz %r8,-116(%r6) 81 06 FF 8C stw %r8,36(%r31) 91 1F 00 24 li_word %r6,0x0FA3E0F0 3C C0 0F A3 60 C6 E0 F0 stw %r6,896(%r31) 90 DF 03 80 lwz %r6,116(%r31) 80 DF 00 74 stw %r6,20(%r5) 90 C5 00 14 stw %r7,12(%r31) 90 FF 00 0C lwz %r5,8(%r31) 80 BF 00 08 add %r6,%r8,%r5 7C C8 2A 14 stw %r6,116(%r31) 90 DF 00 74 li_word %r5,0x0FA3E0FC 3C A0 0F A3 60 A5 E0 FC stw %r5,896(%r31) 90 BF 03 80 li_word %r5,0x0FA3E0FC 3C A0 0F A3 60 A5 E0 FC stw %r5,1096(%r31) 90 BF 04 48 mtlr %r4 7C 88 03 A6 goto: { li %r31,$Sys_syscall ; li_word %r3,0x0FA3E100 ; blr } 3B E0 00 49 3C 60 0F A3 60 63 E1 00 4E 80 00 20 ==11489==
*** Bug 203357 has been marked as a duplicate of this bug. ***