1. 程式人生 > >Valgrind記憶體讀寫越界檢測工具使用說明

Valgrind記憶體讀寫越界檢測工具使用說明

valgrind這款工具是執行在linux下的,可以用來定位c/c++程式中記憶體使用方面的錯誤。包括:記憶體洩漏、使用未初始化的記憶體、讀/寫已釋放的記憶體、讀/寫記憶體越界、使用malloc/new/new[]和free/delete/delete[]不匹配,等等。
valgrind官方網站:http://valgrind.org/,是一款open source軟體。我下載的時候最新版是3.2.3。安裝過程很簡單——configure,make,make install,安裝後不需要任何設定,直接可以開始使用。
valgrind執行方法很簡單:valgrind --leak-check=full --track-fds=yes 程式 引數

  這樣你的程式就會在valgrind監控下運行了,結果會直接輸出到螢幕上。如果想把結果輸出到日誌檔案(通常也需要這樣),用如下的命令:valgrind --log-file=valgrind_log --leak-check=full --track-fds=yes 程式 引數

執行 :valgrind --leak-check=full --track-fds=yes test  -a 後可以得到如下結果。

Address 0x13cd0c34 is 0 bytes after a block of size 28 alloc'd

檢查時發現上面打印出的語句,說明記憶體分配後全部空間都被佔用,這是請注意字串拷貝可能越界。

Valgrind is an instrumentation framework for building dynamic analysis tools. Thereare Valgrind tools that can automatically detect many memory managementand threading bugs, and profile your programs in detail. You can alsouse Valgrind to build new tools.

The Valgrind distribution currently includes six production-qualitytools: a memory error detector, two thread error detectors, a cacheand branch-prediction profiler, a call-graph generating cache andbranch-prediction profiler, and a heap profiler. It also includesthree experimental tools: a heap/stack/global array overrun detector,a second heap profiler that examines how heap blocks are used, and aSimPoint basic block vector generator. It runs on the followingplatforms: X86/

Linux, AMD64/linux, ARM/Linux, PPC32/Linux,PPC64/Linux, S390X/Linux, MIPS/Linux, ARM/Android (2.3.x and later),X86/android (4.0 and later), X86/Darwin and AMD64/Darwin (Mac OS X10.6 and 10.7, with limited support for 10.8).

.

相關推薦

Valgrind記憶體越界檢測工具使用說明

valgrind這款工具是執行在linux下的,可以用來定位c/c++程式中記憶體使用方面的錯誤。包括:記憶體洩漏、使用未初始化的記憶體、讀/寫已釋放的記憶體、讀/寫記憶體越界、使用malloc/new/new[]和free/delete/delete[]不匹配,等等。va

磁碟速率測試工具 Bonnie

概述 我們在評估開發板的各種介面時,其中一個重要的指標就是頻寬(資料傳輸速率)。早期的時候我們是直接使用 dd 命令進行簡單測試的,但發現多次測量的結果波動很大。後來使用了自己專門寫的 Python 程式,做隨機資料的讀寫。但依然是比較簡陋,考慮不夠全面。 Bonnie 正是適合我們使用

poi Excel小工具 部分原始碼

功能  如果匹配條件相同 則把路徑2 的值賦值到路徑一 部分原始碼   //獲取表名     public static String[] getSheetNames(String filePath) { &nb

JAVA FileUtils(檔案以及操作工具類)

轉別人的合併的連結 //https://www.cnblogs.com/chenhuan001/p/6575053.html   //https://blog.csdn.net/lovoo/article/details/77899627 第一個連結找不到了作者看見了說一下我給你上鍊接

Linux 字元裝置驅動開發--記憶體操作

學習Linux的累計時間已經有兩年多了,工作關係,學習的過程總是斷斷續續的,現在整理一下,下面要分享的是一個簡單的linux驅動程式,將記憶體當作一個虛擬的裝置去讀寫,沒有什麼實際的用處,像hello wold!程式一樣,我們簡單體會一下linux驅動程式的特點,Linux

Android 檔案系統功能測試工具iozone移植。

iozone可以對檔案系統讀寫功能進行自動測試,首先需要下載iozone。然後原始碼資料夾放在Android原始碼下mm編譯出bin檔案放入裝置bin資料夾下面並賦予讀和執行許可權。 下面是具體步驟,如果會編譯的,不需要的可直接跳過。 1,將iozone4A

一次程式碼重構之旅-快速xml檔案工具類封裝

   為了滿足系統的靈活性,有些功能經常需要用到配置檔案,一般是xml格式的居多.如何能快速讀寫配置檔案呢?    以前都是用dom4j提供的api來讀寫xml檔案,用dom4j讀寫配置檔案總感覺像是在結構化的處理問題,能不能直接把xml檔案和JavaBean之間相互轉換呢

我的小工具,java版串列埠卡測試工具

工作過程中,經常需要和卡片打交道,如何快速的讀寫卡,提高些工作效率呢?業餘時間,搞了個讀寫卡測試工具, 通過串列埠操作讀卡器。我把車載機改造為串列埠的讀卡器,配合這個工具就可以使用了。如果有網友想使用這個工具,得自己 做個下位機讀卡器了。指令是透傳的,監控發出來的指令

Java IO ---學習筆記(標準流、記憶體流、順序輸入流)

1、標準流   語言包 java.lang 中的 System 類管理標準輸入/輸出流和錯誤流。   System.in從 InputStream 中繼承而來,用於從標準輸入裝置中獲取輸入資料(通常是鍵盤)   System.out從 PrintStream 中繼承而來,把輸

Android平臺上直接實體記憶體漏洞的那些事

/* 本文章由 莫灰灰 編寫,轉載請註明出處。   */ 通過mmap直接操作實體記憶體的漏洞應該算是比較常見的一類漏洞了,在2012年、2013年的這段時間裡,爆出了好幾個實體記憶體讀寫相關的漏洞。主要是因為某些裝置本身具有mmap實體記憶體的功能,但是其許可權

Linux效能測試工具--iozone

IOzone是一個檔案系統測試基準工具。可以測試不同的作業系統中檔案系統的讀寫效能。可以通過 write, re-write, read, re-read, random read, random write, random mix, backwards read, rec

測試手機快閃記憶體速度

老羅在釋出會是宣傳驍龍660處理器搭配的emmic5.1,但是驍龍660支援單通道ufs,但是與之匹配的快閃記憶體只能是東芝生產,東芝核電危機一系列財務造價,正在出售最賺錢的部門 所以有一定供貨問題。 堅果pro2用的兩顆快閃記憶體晶片,系統在ufs2.1上,

python基礎教程:記憶體操作

前言 今天為大家介紹一個例項講述了Python記憶體讀寫操作。分享給大家供大家參考,具體如下: Python中的讀寫不一定只是

rwcheck:為嵌入式裝置設計的壓測工具

我設計的一款讀寫壓測工具,開源在我的github倉庫 rwcheck是一個對嵌入式裝置進行讀寫壓測的工具 什麼是rwcheck 正如其名,rwcheck工具用於讀寫壓測。它是什麼工作原理呢?為什麼要用rwcheck呢? rwcheck的初衷是為嵌入式Linux裝置提供讀寫冒煙測試的工具,在大壓力的IO測試中

米聯客 ZYNQ/SOC 精品教程 S03-CH01基於FDMA記憶體測試

軟體版本:VIVADO2017.4 作業系統:WIN10 64bit 硬體平臺:適用米聯客 ZYNQ系列開發板 米聯客(MS

linux下記憶體洩露檢測工具Valgrind介紹

一、工作中一個記憶體洩漏問題的解決過程: 問題背景:我司裝置上執行有多個程序,在裝置執行兩天後,程序jsman所佔用的記憶體達到了1200M bytes(通過ps -aux檢視)。 解決步驟: 確定裝置上的軟體版本,根據git的commit號資訊回退

Unix下C程式記憶體洩漏檢測工具Valgrind安裝與使用

                Valgrind是一款用於記憶體除錯、記憶體洩漏檢測以及效能分析的軟體開發工具。 Valgrind的最初作者是Julian Seward,他於2006年由於在開發Valgrind上的工作獲得了第二屆Google-O'Reilly開原始碼獎。 Valgrind遵守GNU通用公共許

Windows和Linux記憶體檢測工具Valgrind,Visual Leak Detector,CppCheck, Cpplint

1 Linux記憶體洩漏檢測工具ValgrindValgrind簡介        Valgrind是一套Linux下,開放原始碼(GPL V2)的模擬除錯工具的集合。Valgrind由核心(core)以及基於核心的其他除錯工具組成。核心類似於一個框架(framework),

Linux C/C++ 記憶體洩漏檢測工具Valgrind

下面是一段有問題的C程式程式碼test.c #i nclude <stdlib.h> void f(void) { int* x = malloc(10 * sizeof(int)); x[10] = 0; //問題1: 陣列下標越界 } //問

C/C++的記憶體洩漏檢測工具Valgrind memcheck的使用經歷

 Linux下的Valgrind真是利器啊(不知道Valgrind的請自覺檢視參考文獻(1)(2)),幫我找出了不少C++中的記憶體管理錯誤,前一陣子還在糾結為什麼VS 2013下執行良好的程式到了Linux下用g++編譯執行卻崩潰了,給出一堆彙編程式碼也看不懂。久久不