原创 #linux# gcc編譯器優化選項的詳細信息

Table of Contents 優化選項-O0  優化選項-O1 優化選項-O2 優化選項-O3 優化選項-OS 支持CPU類型target gcc編譯器優化選項O0, O1, O2, O3, Os時我們有時想查看詳細信息,可以使用以

原创 #內存泄露# #valgrind#valgrind-3.15.0 編譯&&交叉編譯

環境準備 valgrind-3.15.0 官網下載地址:http://valgrind.org/ 編譯環境:ubuntu16.04 x64 開發平臺:TDA2X 下載好valgrind-3.15.0.tar.bz2文件後進行解壓 tar

原创 #Linux#進程間通信# 進程與線程

進程的概念 進程是操作系統的概念,每當我們執行一個程序時,對於操作系統來講就創建了一個進程,在這個過程中,伴隨着資源的分配和釋放。可以認爲進程是一個程序的一次執行過程。 進程(Process)是計算機中的程序關於某數據集合上的一次運行活動

原创 #Linux#進程間通信# 信號(sinal)

在計算機科學中,信號是Unix、類Unix以及其他POSIX兼容的操作系統中進程間通訊的一種有限制的方式。它是一種異步的通知機制,用來提醒進程一個事件已經發生。當一個信號發送給一個進程,操作系統中斷了進程正常的控制流程,此時,任何非原子操

原创 ※設計模式※→☆結構型模式☆============Proxy模式(十三)

模式概述 當我們需要對一個對象的訪問進行控制時。比如說如果我們有一些開銷較大的對象,但是隻需要使用其中一部分方法,我們只要在完全需要它們的時候才初始化這些對象。那時, 我們可以用一些暴露出同樣接口的輕量級對象來替代那些笨重的對象。這些輕量

原创 #C++基礎# inline __forceinline __attribute__((always_inline)內聯函數

inline  inline是C++關鍵字,在函數聲明或定義中,函數返回類型前加上關鍵字inline,即可以把函數指定爲內聯函數。這樣可以解決一些頻繁調用的函數大量消耗棧空間(棧內存)的問題。關鍵字inline必須與函數定義放在一起才能使

原创 #內存泄露# linux常用內存相關命令

Table of Contents free命令 vmstat命令 top命令 cat /proc/meminfo ps aux命令 free命令   free 命令會顯示系統內存的使用情況,包括物理內存、交換內存(swap)和內核緩衝區

原创 #內存泄露# #valgrind# valgrind使用

用法: valgrind [options] prog-and-args [options]: 常用選項,適用於所有Valgrind工具 -tool=<name> 最常用的選項。運行 valgrind中名爲toolname的工具。默認m

原创 ※設計模式※→☆結構型模式☆============Decorator模式(九)

模式概述 在軟件組件的設計中,如果責任劃分的不清晰,使用繼承得到的結果往往是隨着需求的變化,子類急劇膨脹,同時充斥着重複代碼,這時候的關鍵是劃清責任。典型模式代表: Decorator,Bridge Bridge的核心就是將抽象和實現分離

原创 #Linux#進程間通信# 管道(pipe)-匿名管道pipe

我們通常把一個進程連接到另一個進程的一個數據流稱爲一個“管道”,通常是用作把一個進程的輸出通過管道連接到另一個進程的輸入。管道本質上是內核的一塊緩存。內核使用環形隊列機制,藉助內核緩衝區(4k)實現。 管道是Unix中最古老的進程間通信的

原创 #內存泄露# #valgrind# valgrind簡介

Valgrind 概述 體系結構 Valgrind是一套Linux下,開放源代碼(GPL V2)的仿真調試工具的集合,官方地址:http://valgrind.org/。Valgrind由內核(core)以及基於內核的其他調試工具組成。內

原创 #linux# gcc常用命令行參數說明

  Table of Contents 基本選項 編譯過程選項 警告提示選項 庫操作選項 調試選項 交叉編譯選項 使用gcc編譯器時,必須給出一系列必要的調用參數和文件名稱。不同參數的先後順序對執行結果沒有影響,只有在使用同類參數時的先後

原创 #Linux#進程間通信# 消息隊列(message queue)

消息隊列實際上是操作系統在內核爲我們創建的一個隊列,通過這個隊列的標識符key,每一個進程都可以打開這個隊列,每個進程都可以通過這個隊列向這個隊列中插入一個結點或者獲取一個結點來完成不同進程間的通信。用戶組織一個帶有類型的數據塊,添加到隊

原创 #內存泄露# #內存檢測#Linux中的常用內存問題檢測工具

C/C++等底層語言在提供強大功能及性能的同時,其靈活的內存訪問也帶來了各種糾結的問題。如果crash的地方正是內存使用錯誤的地方,說明你人品好。如果crash的地方內存明顯不是consistent的,或者內存管理信息都已被破壞,並且還是

原创 #windows# gdb交叉編譯arm-linux-gnueabihf-gdb

#linux# gdb交叉編譯arm-linux-gnueabihf-gdb https://blog.csdn.net/xiaoting451292510/article/details/105166739 GDB(GNU symbol