- 论坛徽章:
- 0
|
我想在MIPS下用Valgrind ,但是总是死机,自己编了个小程序,还是死机,Process terminating with default action of signal 11
运行环境:MIPS linux 32 嵌入式单板 ,运行程序非常简单,代码如下
main (){
while(1){
sleep(1);
printf("tst ================\n");
}}
。
运行Valgrind 报错如下=================================================
命令: ./mips-linux-gnu-valgrind --tool=memcheck ./a.out
==1616== Memcheck, a memory error detector
==1616== Copyright (C) 2002-2012, and GNU GPL'd, by Julian Seward et al.
==1616== Using Valgrind-3.8.1 and LibVEX; rerun with -h for copyright info
==1616== Command: ./a.out
==1616==
==1616==
==1616== Process terminating with default action of signal 11 (SIGSEGV)
==1616== Access not within mapped region at address 0x5554
==1616== at 0x4004434: ??? (in /lib/ld-uClibc-0.9.30.so)
==1616== by 0x4000ACC: ??? (in /lib/ld-uClibc-0.9.30.so)
==1616== If you believe this happened as a result of a stack
==1616== overflow in your program's main thread (unlikely but
==1616== possible), you can try to increase the size of the
==1616== main thread stack using the --main-stacksize= flag.
==1616== The main thread stack size used in this run was 8388608.
valgrind: m_scheduler/scheduler.c:923 (run_thread_for_a_while): Assertion 'two_words[0] == 0 && two_words[1] == 0' failed.
==1616== at 0x3803E004: ??? (in /tmp/valg/lib/valgrind/memcheck-mips32-linux)
==1616== by 0x3803DF40: ??? (in /tmp/valg/lib/valgrind/memcheck-mips32-linux)
sched status:
running_tid=1
Thread 1: status = VgTs_Runnable
==1616== at 0x4004434: ??? (in /lib/ld-uClibc-0.9.30.so)
==1616== by 0x4000ACC: ??? (in /lib/ld-uClibc-0.9.30.so)
Note: see also the FAQ in the source distribution.
It contains workarounds to several common problems.
In particular, if Valgrind aborted or crashed after
identifying problems in your program, there's a good chance
that fixing those problems will prevent Valgrind aborting or
crashing, especially if it happened in m_mallocfree.c.
In the bug report, send all the above text, the valgrind
version, and what OS and version you are using. Thanks. |
|