青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

大龍的博客

常用鏈接

統計

最新評論

valgrind memcheck 錯誤分析收藏 -------- 轉

1.默認使用工具memcheck

2.輸出到XML文件:valgrind --leak-check=full --xml=yes --log-file="log.xml" myprog arg1 arg2

3.錯誤解釋

3.1Illegal read / Illegal write errors

例如:

Invalid read of size 4
at 0x40F6BBCC: (within /usr/lib/libpng.so.2.1.0.9)
by 0x40F6B804: (within /usr/lib/libpng.so.2.1.0.9)
by 0x40B07FF4: read_png_image(QImageIO *) (kernel/qpngio.cpp:326)
by 0x40AC751B: QImageIO::read() (kernel/qimage.cpp:3621)
Address 0xBFFFF0E0 is not stack'd, malloc'd or free'd
這個錯誤的發生是因為對一些memcheck猜想不應該訪問的內存進行了讀寫。
3.2 Use of uninitialised values

例如:

Conditional jump or move depends on uninitialised value(s)
at 0x402DFA94: _IO_vfprintf (_itoa.h:49)
by 0x402E8476: _IO_printf (printf.c:36)
by 0x8048472: main (tests/manuel1.c:8)
這個錯誤的發生是因為使用了未初始化的數據。一般情況下有兩種情形容易出現這個錯誤:
程序中的局部變量未初始化;
C語言malloc的內存未初始化;C++中new的對象其成員未被初始化。
 
3.3 Illegal frees
例如:
Invalid free()
at 0x4004FFDF: free (vg_clientmalloc.c:577)
by 0x80484C7: main (tests/doublefree.c:10)
Address 0x3807F7B4 is 0 bytes inside a block of size 177 free'd
at 0x4004FFDF: free (vg_clientmalloc.c:577)
by 0x80484C7: main (tests/doublefree.c:10)
 
3.4 When a block is freed with an inappropriate deallocation function
例如:
Mismatched free() / delete / delete []
at 0x40043249: free (vg_clientfuncs.c:171)
by 0x4102BB4E: QGArray::~QGArray(void) (tools/qgarray.cpp:149)
by 0x4C261C41: PptDoc::~PptDoc(void) (include/qmemarray.h:60)
by 0x4C261F0E: PptXml::~PptXml(void) (pptxml.cc:44)
Address 0x4BB292A8 is 0 bytes inside a block of size 64 alloc'd
at 0x4004318C: operator new[](unsigned int) (vg_clientfuncs.c:152)
by 0x4C21BC15: KLaola::readSBStream(int) const (klaola.cc:314)
by 0x4C21C155: KLaola::stream(KLaola::OLENode const *) (klaola.cc:416)
by 0x4C21788F: OLEFilter::convert(QCString const &) (olefilter.cc:272)
  • If allocated with malloc, calloc, realloc, valloc or memalign, you must deallocate with free.

  • If allocated with new[], you must deallocate with delete[].

  • If allocated with new, you must deallocate with delete.

    linux系統對上述錯誤可能不在意,但是移值到其他平臺時卻會有問題。

    3.5 Passing system call parameters with inadequate read/write permissions

  • 例如:
    Syscall param write(buf) points to uninitialised byte(s)
    at 0x25A48723: __write_nocancel (in /lib/tls/libc-2.3.3.so)
    by 0x259AFAD3: __libc_start_main (in /lib/tls/libc-2.3.3.so)
    by 0x8048348: (within /auto/homes/njn25/grind/head4/a.out)
    Address 0x25AB8028 is 0 bytes inside a block of size 10 alloc'd
    at 0x259852B0: malloc (vg_replace_malloc.c:130)
    by 0x80483F1: main (a.c:5)
    Syscall param exit(error_code) contains uninitialised byte(s)
    at 0x25A21B44: __GI__exit (in /lib/tls/libc-2.3.3.so)
    by 0x8048426: main (a.c:8)
    Memcheck檢查所有的被系統調用的參數。
  • It checks all the direct parameters themselves.

  • Also, if a system call needs to read from a buffer provided by your program, Memcheck checks that the entire buffer is addressable and has valid data, ie, it is readable.

  • Also, if the system call needs to write to a user-supplied buffer, Memcheck checks that the buffer is addressable.

    例如:

    #include <stdlib.h> #include <unistd.h> int main( void ) { char* arr = malloc(10); int* arr2 = malloc(sizeof(int)); write( 1 /* stdout */, arr, 10 ); exit(arr2[0]); }

    錯誤信息:

    Syscall param write(buf) points to uninitialised byte(s) at 0x25A48723: __write_nocancel (in /lib/tls/libc-2.3.3.so) by 0x259AFAD3: __libc_start_main (in /lib/tls/libc-2.3.3.so) by 0x8048348: (within /auto/homes/njn25/grind/head4/a.out) Address 0x25AB8028 is 0 bytes inside a block of size 10 alloc'd at 0x259852B0: malloc (vg_replace_malloc.c:130) by 0x80483F1: main (a.c:5) Syscall param exit(error_code) contains uninitialised byte(s) at 0x25A21B44: __GI__exit (in /lib/tls/libc-2.3.3.so) by 0x8048426: main (a.c:8)

    傳遞了無效參數到系統函數中。

    3.6 Overlapping source and destination blocks

    C的以下庫函數拷貝數據從一塊內存到另一塊內存時: memcpy(), strcpy(), strncpy(), strcat(), strncat(). 源和目的都不允許溢出。

    例如:

    ==27492== Source and destination overlap in memcpy(0xbffff294, 0xbffff280, 21) ==27492== at 0x40026CDC: memcpy (mc_replace_strmem.c:71) ==27492== by 0x804865A: main (overlap.c:40)

    3.7 Memory leak detection

    錯誤信息:

    Still reachable: A pointer to the start of the block is found. This usually indicates programming sloppiness. Since the block is still pointed at, the programmer could, at least in principle, free it before program exit. Because these are very common and arguably not a problem, Memcheck won't report such blocks unless --show-reachable=yes is specified.

    Possibly lost, or "dubious": A pointer to the interior of the block is found. The pointer might originally have pointed to the start and have been moved along, or it might be entirely unrelated. Memcheck deems such a block as "dubious", because it's unclear whether or not a pointer to it still exists.

    Definitely lost, or "leaked": The worst outcome is that no pointer to the block can be found. The block is classified as "leaked

  • posted on 2009-02-27 11:38 大龍 閱讀(2400) 評論(0)  編輯 收藏 引用


    只有注冊用戶登錄后才能發表評論。
    網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


    青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲视频在线观看| 亚洲第一页中文字幕| 欧美日产在线观看| 欧美日本高清| 国产噜噜噜噜噜久久久久久久久| 国产欧美综合一区二区三区| 亚洲第一精品夜夜躁人人躁| 免费一级欧美片在线观看| 亚洲电影免费观看高清| 亚洲欧洲日本mm| 亚洲欧美国产高清| 欧美大片国产精品| 国产精品99久久久久久久女警 | 免费永久网站黄欧美| 久久精品国产成人| 欧美日韩精品欧美日韩精品| 亚洲欧美国产精品桃花| 午夜亚洲精品| 国产精品theporn| 在线观看日韩av| 欧美在线视频免费播放| 99亚洲伊人久久精品影院红桃| 久久精品亚洲一区二区三区浴池 | 一本到12不卡视频在线dvd| 国产精品国产自产拍高清av| 亚洲欧洲另类| 亚洲综合大片69999| 欧美日韩视频在线观看一区二区三区| 在线日韩av片| 一区二区三区四区精品| 欧美日韩一级视频| 久久亚洲精品一区| 午夜精品亚洲| 日韩五码在线| 亚洲国产欧美不卡在线观看| 久久精品九九| 亚洲综合成人在线| 亚洲一区二区三区中文字幕 | 欧美一区二区三区啪啪| 国产精品五月天| 午夜精品在线观看| 亚洲桃色在线一区| 最新日韩在线视频| 欧美制服丝袜| 激情视频一区二区| 久久中文字幕一区| 国产精品盗摄久久久| 亚洲国产成人精品女人久久久| 国产精品日韩欧美| 亚洲美女av网站| 国产精品九色蝌蚪自拍| 欧美高清视频在线播放| 国产日韩视频| 另类天堂视频在线观看| 欧美~级网站不卡| 亚洲精品日日夜夜| 一本色道久久综合亚洲精品小说| 亚洲第一在线| 久久一区国产| 亚洲伦理久久| 亚洲一级黄色| 亚洲一区网站| 国产精品草草| 亚洲视频成人| 亚洲欧美日韩在线播放| 欧美另类videos死尸| 亚洲人体偷拍| 国产精品日韩欧美| 一级成人国产| 亚洲一区二区三区乱码aⅴ蜜桃女| 99精品国产热久久91蜜凸| 亚洲人妖在线| 欧美日韩国产成人在线91| 最新国产乱人伦偷精品免费网站 | 免费成人网www| 亚洲欧美一区二区三区久久| 欧美午夜免费影院| 亚洲欧美成人一区二区三区| 欧美一二三区精品| 欧美精品v国产精品v日韩精品| 亚洲伊人伊色伊影伊综合网| 欧美日韩亚洲91| 亚洲午夜免费视频| 久久国产精品久久久| 久久精品综合| 亚洲高清电影| 午夜在线精品| 红桃视频国产精品| 亚洲在线视频一区| 久久露脸国产精品| 国产精品日韩欧美一区二区三区 | 久久国产加勒比精品无码| 男女精品视频| 国产在线精品二区| 亚洲午夜国产一区99re久久| 午夜精品理论片| 一区二区三区在线视频观看| 欧美国内亚洲| 亚洲第一综合天堂另类专| 一区二区三区 在线观看视| 久久亚洲一区二区| 日韩视频一区二区三区| 最新国产成人在线观看 | 亚洲在线播放| 免费人成精品欧美精品| 亚洲视频axxx| 欧美另类99xxxxx| 欧美一区二区视频在线| 亚洲欧洲精品天堂一级| 久久久久久97三级| 国产日韩亚洲欧美综合| 蜜臀av在线播放一区二区三区| 一区二区成人精品 | 久久成人人人人精品欧| 91久久综合| 国内成+人亚洲+欧美+综合在线| 免费试看一区| 久久精彩视频| 亚洲免费在线观看视频| 91久久夜色精品国产网站| 久久婷婷一区| 欧美一区二区视频免费观看| 国产伦精品一区| 欧美日韩激情小视频| 嫩模写真一区二区三区三州| 欧美影院在线播放| 亚洲视频一区在线| 亚洲精品免费网站| 欧美国产第二页| 久久嫩草精品久久久精品一 | 国产亚洲a∨片在线观看| 欧美日韩精品免费| 美女视频网站黄色亚洲| 久久久精品久久久久| 欧美一区中文字幕| 亚洲伊人伊色伊影伊综合网 | 欧美与黑人午夜性猛交久久久| 99热在这里有精品免费| 欧美日韩国产片| 欧美成人性网| 一本色道久久精品| 亚洲三级影片| 99精品国产在热久久婷婷| 亚洲另类一区二区| 最新中文字幕一区二区三区| 亚洲国产日韩欧美| 亚洲国产精品www| 亚洲人成欧美中文字幕| 亚洲精品在线免费| 99视频+国产日韩欧美| 99精品福利视频| 夜夜嗨av一区二区三区免费区| 亚洲欧洲精品一区二区| 亚洲精品欧美一区二区三区| 亚洲精品午夜| 夜久久久久久| 亚洲欧美伊人| 99视频精品在线| 一区二区日韩精品| 亚洲一区区二区| 久久精品视频在线看| 久久亚洲私人国产精品va媚药| 麻豆精品网站| 欧美日韩国产色综合一二三四| 欧美日韩中国免费专区在线看| 亚洲欧美日产图| 久久久久久亚洲精品中文字幕| 亚洲日本成人网| 中文网丁香综合网| 欧美一级电影久久| 久久亚裔精品欧美| 欧美日韩综合另类| 狠狠久久亚洲欧美专区| 最新国产精品拍自在线播放| 亚洲午夜一区二区三区| 欧美综合国产| 亚洲激情视频网站| 亚洲欧洲av一区二区| 毛片一区二区三区| 国产精品嫩草99av在线| 欧美成人免费观看| 国产精品免费一区二区三区在线观看 | 久久久噜噜噜久久中文字幕色伊伊| 久久夜色精品国产| 99re在线精品| 久久亚洲午夜电影| 国产欧美日韩视频一区二区| 亚洲第一在线视频| 欧美在线观看视频在线| 亚洲福利在线看| 欧美一二区视频| 欧美色图首页| 亚洲人成欧美中文字幕| 久久国产精品99国产精| 亚洲日本免费电影| 免费观看日韩av| 国产在线播放一区二区三区| 亚洲一区在线观看视频| 欧美大片在线看免费观看| 亚洲欧美影院|