亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 5159 | 回復: 2
打印 上一主題 下一主題

[應用] 交叉編譯mips平臺上的valgrind運行出現(xiàn)“impossible”問題 [復制鏈接]

論壇徽章:
0
跳轉到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2013-12-23 11:15 |只看該作者 |倒序瀏覽
嵌入式平臺,跑的linux系統(tǒng);一個死機問題查了一個月了,跑著跑著就掛了,沒有coredump, 沒有異常打;沒有任何頭緒;
想跑valgrind排查一下原因,好不容易編譯成功,運行時卻出現(xiàn)如下問題,有人遇到過嗎?

/home/xxx/workspace/valgrind/bin/bin # ./mips-linux-gnu-valgrind /home/xxx
/workspace/dvbc_k1.elf1
==342== Memcheck, a memory error detector
==342== Copyright (C) 2002-2013, and GNU GPL'd, by Julian Seward et al.
==342== Using Valgrind-3.9.0 and LibVEX; rerun with -h for copyright info
==342== Command: /home/wupeng/workspace/dvbc_k1.elf1
==342==
--342:0:aspacem  <<< SHOW_SEGMENTS: out_of_memory (32 segments, 4 segnames)
--342:0:aspacem  ( 0) /home/xxx/workspace/valgrind/bin/lib/valgrind/memcheck-mips32-lin--342-- VALGRIND INTERNAL ERROR: Valgrind received a signal 11 (SIGSEGV) - exiting
--342-- si_code=1;  Faulting address: 0x64;  sp: 0x430fe648

valgrind: the 'impossible' happened:
   Killed by fatal signal
==342==    at 0x380E234C: add_to_buf (m_debuglog.c:924)
==342==    by 0x380E16BC: myvprintf_str (m_debuglog.c:539)
==342==    by 0x380E2098: vgPlain_debugLog_vprintf (m_debuglog.c:847)
==342==    by 0x380E25AC: vgPlain_debugLog (m_debuglog.c:969)
==342==    by 0x380675D4: vgPlain_am_show_nsegments (aspacemgr-linux.c:593)
==342==    by 0x3804F164: vgPlain_out_of_memory_NORETURN (m_mallocfree.c:745)
==342==    by 0x38063C00: initialiseSector (m_transtab.c:1382)
==342==    by 0x38064830: vgPlain_add_to_transtab (m_transtab.c:1542)
==342==    by 0x3805C1E4: vgPlain_translate (m_translate.c:163
==342==    by 0x3809BAE0: vgPlain_scheduler (scheduler.c:1004)
==342==    by 0x380D8370: run_a_thread_NORETURN (syswrap-linux.c:103)
==342==    by 0x380D87FC: vgPlain_main_thread_wrapper_NORETURN (syswrap-linux.c:395)

sched status:
  running_tid=1

Thread 1: status = VgTs_Runnable
==342==    at 0x4000810: __start (in /lib/ld-2.8.so)
==342==    by 0x7E8E5D98: ???

論壇徽章:
0
2 [報告]
發(fā)表于 2013-12-24 12:29 |只看該作者
沒人來回答此問題,那我就把編譯過程中遇到的問題貼出來吧,給大家共享:

STEP 1:
下載最新版本的valgrind:
http://www.valgrind.org/downloads/valgrind-3.9.0.tar.bz2

目前支持的平臺,在官網(wǎng)上列表如下:
{x86,amd64,arm,ppc32,ppc64,s390x,mips32,mips64}-linux, arm-android (2.3 and later), x86-android (4.0 and later) and {x86,amd64}-darwin (Mac OS X 10.7, with limited support for 10..

STEP 2:
首先要配置編譯選項,選擇你的目標平臺,因為我是在mips32平臺上運行,所以配置如下:
./configure --host=mips-linux-gnu --prefix=/home/xxx/workspace/valgrind/bin --program-prefix=mips-linux-gnu- CFLAGS="-EL" LDFLAGS="-EL"
注意:大小端的問題;剛開始配置沒有注意這個,運行總是報語法錯誤,后來運行file命令查看,發(fā)現(xiàn)與正常運行的程序差異在于這塊;

1 $ file mips-linux-gnu-valgrind
2 mips-linux-gnu-valgrind: ELF 32-bit LSB executable, MIPS, MIPS32 rel2 version 1, dynamically linked (uses shared libs), for GNU/Linux 2.6.12, with unknown capability 0xf41 = 0x756e6700, not stripped


STEP 3:
生成Makefile后,直接編譯即可;在編譯過程中,會遇到卡在一個地方過不支,需將drd/Makefile中-O2修改為-O1:


1 DRD_CFLAGS = \
2 --param inline-unit-growth=900 \
3 -O1 \
4 -Wextra \
5 -Wformat-nonliteral \
6 -Wno-inline \
7 -Wno-unused-parameter



STEP 4:
安裝,然后將執(zhí)行文件copy到開發(fā)板上;需要注意的安裝目錄與你要拷貝到開發(fā)板上的路徑要完全一致;
這點很重要,因為在編譯時路徑的hardcode已經(jīng)在程序中了,如果不一致,運行時會提示找不到文件:

ex.
在host上,我編譯安裝valgrind的路徑是:/home/xxx/valgrind/bin, 那么將valgrind拷貝到開發(fā)板上的路徑也要是這個,程序才能正確執(zhí)行;

STEP 5:
運行valgrind, 后面跟上要debug的文件即可;

論壇徽章:
0
3 [報告]
發(fā)表于 2014-05-05 14:30 |只看該作者
同mips32平臺,遇到的問題是:
  1. Reading syms from /lib/ld-2.12.2.so
  2. ...
  3. object doesn't have a symbol table
復制代碼
導致下面的traceback不顯示文件,行號
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復

  

北京盛拓優(yōu)訊信息技術有限公司. 版權所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關心和支持過ChinaUnix的朋友們 轉載本站內容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP