国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Linux > 正文

用C++語言做Linux開發工具之編譯器和調試器選擇要素

2024-08-27 23:57:26
字體:
來源:轉載
供稿:網友

編譯和調試往往成為編輯中重要的兩點,所以對于編譯器和調試器的選擇就變得至關重要了,今天我們就告訴大家用C++語言做Linux開發工具之編譯器和調試器選擇要素,以便大家更效率的進行開發
編譯器

用C++語言做Linux開發工具編譯器首選GCC(GNU COMPILER COLLECTION)。原因有兩個,它是GNU開源的,同時它對標準C++的支持度高達96.15%。而VC++6.0的支持度只有83.43%。 GCC不僅是通常意義上的C或C++的編譯器,它還可以編譯java等其它語言。gcc是gnu c的編譯器,g++是gnu c++的編譯器, 而EGCS(Enhanced GNU Compiler Suite)可以認為是gcc的改進版。

編譯語言從源程序到目標代碼會經過如下幾個階段:源程序->匯編程序->編譯成obj程序->鏈接成最終可執行程序。我們可以通過一條編譯指令來完成所有步驟。也可以分步執行。gcc有三個重要選項-E(只進行預處理), -S(生成匯編代碼), -g(生成帶原代碼調試符號的可執行文件,如果想用gdb調試的話,就應該在編譯時打開這個選項)。

用C++語言做Linux開發工具GCC可以看作一個軟件包,除了編譯工具,它還集成了調試器gdb,性能分析工具gcov, gprof。只要我們裝好了GCC,這些強大工具就可以直接使用了。

通過gcov,我們可以查看一個程序,源代碼中每行代碼的運行次數。我們優化運行次數最多的代碼,那么就可以大大優化程序。使用gcov時,需要打開 GCC的fprofile-arcs和ftest-coverage兩個選項。gcov中常用的選項有-b分支統計信息。

通過gprof工具,我們可以查看函數之間的調用順序,及各個函數運行的時間。我們可以將gprof理解為linux/unix自帶工具time的加強版。使用gprof時,需要打開GCC的pg選項。

gcov和 gprof的共同點是在編譯程序時,加入自己的一些輔助信息,由此來進行程序診斷。除了,這些優化手段,我們還可以使用一些內存泄漏工具,來減少野指針,未釋放的內存空間。

調試器

用C++語言做Linux開發工具GDB即GNU的調試器,它是GCC附帶的一個性能優質的調試器。通過GDB和腳本結合,我們可以很好的實現回歸測試。

用C++語言做Linux開發工具GDB可以運行于CLI和GUI兩種模式。默認GDB是CLI模式的,我們可以去下載和安裝GUI模式的GDB,例如xxgdb, ddd等。一個更好的方式是在 EMACS中使用GDB。GDB包括visual studio工具的所有調試功能,還包括它沒有的功能。它除了支持,我們一般的設置斷點,單步跟蹤,step in, step out, step over等,還有一些強大的功能。在gdb中,我們可以有以下幾種暫停方式:斷點(BreakPoint)、觀察點(WatchPoint)、捕捉點(CatchPoint)、信號(Signals)、線程停止(Thread Stops)。

下面列舉幾個讓我印象深刻的功能。1)通過 watch指令,可以讓程序在某個變量的值發生變化時,暫停下來。2)通過print指令,在程序運行時,設置變量的值,運行一個程序自身支持的一個方法。3)通過until指令,我們可以讓程序在運行到某個程序時暫停下來。4)通過break.. if指令,使得程序在滿足某個bool表達式時,暫停下來。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 临朐县| 宁阳县| 西乡县| 淮滨县| 汉沽区| 昔阳县| 庆城县| 延安市| 定远县| 乐昌市| 吐鲁番市| 四子王旗| 濉溪县| 木兰县| 禹城市| 玉山县| 邵阳县| 兖州市| 兴宁市| 邓州市| 库伦旗| 西乡县| 赤峰市| 泸溪县| 元氏县| 开封市| 随州市| 合江县| 崇仁县| 恩施市| 南澳县| 莲花县| 双鸭山市| 莱芜市| 谢通门县| 施甸县| 北辰区| 盐城市| 崇文区| 手游| 柯坪县|