2014-03-04 57 views
0

爲mips平臺交叉編譯Valgrind-3.9.0,使用-g選項交叉編譯'Hello World'程序,仍然出現此錯誤。 --track-origins = yes沒有幫助 相同的代碼在Linux中正常工作。請讓我知道如何繼續有條件跳轉或移動取決於未初始化的值 - mips平臺

# valgrind ./executeApp 
==522== Memcheck, a memory error detector 
==522== Copyright (C) 2002-2013, and GNU GPL'd, by Julian Seward et al. 
==522== Using Valgrind-3.9.0 and LibVEX; rerun with -h for copyright info 
==522== Command: ./executeApp 
==522== Conditional jump or move depends on uninitialised value(s) 
==522== at 0x4006250: ??? (in /lib/ld-uClibc-0.9.29.so) 
==522== by 0x400101C: _start (in /lib/ld-uClibc-0.9.29.so) 

==522== 
IR SANITY CHECK FAILURE 
IRSB { 
    t0:I32 t1:I1 

    IR-NoOp 
    IR-NoOp 
    IR-NoOp 
    IR-NoOp 
    IR-NoOp 
    IR-NoOp 
    IR-NoOp 
    IR-NoOp 
    IR-NoOp 
    IR-NoOp 
    IR-NoOp 
    IR-NoOp 
    IR-NoOp 
    IR-NoOp 
    IR-NoOp 
    ------ IMark(0x483C658, 4, 0) ------ 
    PUT(40) = Add32(0x0:I32,0x0:I32) 
    PUT(128) = 0x483C65C:I32 
    ------ IMark(0x483C65C, 4, 0) ------ 
    PUT(32) = Add32(0x0:I32,0x1:I32) 
    PUT(128) = 0x483C660:I32 
    ------ IMark(0x483C660, 4, 0) ------ 
    t0 = DIRTY 1:I1 ::: mips32_dirtyhelper_mfc0{0x38341e58}(BBPTR,0xF:I32,0x0:I32) 
    PUT(40) = t0 
    PUT(128) = 0x483C664:I32 
    ------ IMark(0x483C664, 4, 0) ------ 
    PUT(48) = Add32(0x0:I32,0xFFFFFFE0:I32) 
    PUT(128) = 0x483C668:I32 
    ------ IMark(0x483C668, 4, 0) ------ 
    PUT(36) = 0x20000:I32 
    PUT(128) = 0x483C66C:I32 
    ------ IMark(0x483C66C, 4, 0) ------ 
    PUT(36) = Or32(GET:I32(36),0xA040:I32) 
    PUT(128) = 0x483C670:I32 
    ------ IMark(0x483C670, 4, 0) ------ 
    PUT(40) = And32(GET:I32(40),GET:I32(48)) 
    PUT(128) = 0x483C674:I32 
    ------ IMark(0x483C674, 4, 0) ------ 
    t1 = CmpNE32(GET:I32(40),GET:I32(36)) 
    if (t1) { PUT(128) = 0x483C67C:I32; exit-Boring } 
    PUT(128) = 0x483C678:I32 
    ------ IMark(0x483C678, 4, 0) ------ 
    PUT(32) = Add32(0x0:I32,0x111C:I32) 
    PUT(128) = 0x483C67C:I32 
    PUT(128) = GET:I32(128); exit-Boring 
} 

IN STATEMENT: 

t0 = DIRTY 1:I1 ::: mips32_dirtyhelper_mfc0{0x38341e58}(BBPTR,0xF:I32,0x0:I32) 

ERROR = IRStmt.Dirty.args: BBPTR requested, but no fxState declared 


vex: the `impossible' happened: 
    sanityCheckFail: exiting due to bad IR 
vex storage: T total 14676136 bytes allocated 
vex storage: P total 0 bytes allocated 

valgrind: the 'impossible' happened: 
    LibVEX called failure_exit(). 
==522== at 0x38042DF0: report_and_quit (m_libcassert.c:260) 
==522== by 0x38043060: panic (m_libcassert.c:350) 
==522== by 0x380430B4: vgPlain_core_panic_at (m_libcassert.c:355) 
==522== by 0x380430D8: vgPlain_core_panic (m_libcassert.c:360) 
==522== by 0x38066B48: failure_exit (m_translate.c:731) 
==522== by 0x381353B8: vpanic (main_util.c:226) 
==522== by 0x38141E0C: sanityCheckFail (ir_defs.c:3589) 
==522== by 0x38143308: sanityCheckIRSB (ir_defs.c:4411) 
==522== by 0x381338E4: LibVEX_Translate (main_main.c:719) 
==522== by 0x380674E8: vgPlain_translate (m_translate.c:1602) 
==522== by 0x380AB604: handle_chain_me (scheduler.c:1032) 
==522== by 0x380AC5C0: vgPlain_scheduler (scheduler.c:1336) 
==522== by 0x380C39B8: run_a_thread_NORETURN (syswrap-linux.c:103) 
==522== by 0x380C3F48: vgPlain_main_thread_wrapper_NORETURN (syswrap-linux.c:395) 

sched status: 
    running_tid=1 

Thread 1: status = VgTs_Runnable 
==522== at 0x483C658: memcpy (in /lib/libuClibc-0.9.29.so) 
==522== by 0x4821E8C: ??? (in /lib/libuClibc-0.9.29.so) 

======================== END ================ 

回答

相關問題