Linux基礎 檔案core除錯 編譯鏈結

2021-09-25 16:42:31 字數 1152 閱讀 9227

<6>使用檔案core 除錯(程式奔潰可以用,不包括邏輯錯誤)

開啟 core  ulimit  -c  size

定義core檔案大小  ulimit  -c  size

顯示所有的檔案大小  ulimit  -a

只顯示core檔案大小  ulimit  -c

<7>編譯鏈結

將所寫原始檔經過一系列的過程最終變成可執行程式

1、預編譯

gcc  -e

main.c  /*-o  main.i*/

主要工作:1.  刪除所有的「#define」並文字替換

處理所有的條件預編譯指令#if  #endif  #elif

遞迴展開「#include」,將包含的檔案插入到該預編譯指令的位置

刪除注釋

新增行符號和檔案標識

保留#pragma(交給編譯器處理)

2、編譯

gcc-s

main.i  /*-o  main.s*/

主要工作:1.  詞法分析

語法分析

語義分析

**優化

生成彙編指令

3、彙編

gcc-c

main.s  /*-o  main.o*/

主要工作:將指令**翻譯彙編成可重定位的二進位制檔案(生成各個section,生成符號表)

4、鏈結

gcc-o

main  main.o  或  gcc  -o  main  main.c

主要工作:1.合併段和符號表(將函式和變數統稱為符號)

符號解析(把目標檔案中的符號和引用聯絡起來)

分配位址和空間

符號重定位(把符號定義和記憶體位址對於起來,然後修改所以對符號的引用)

將預編譯、編譯、彙編過程合併到一塊執行 gcc  -c  main.c,再鏈結 gcc  -o main  main.c

可直接通過原始檔生成可執行檔案  gcc  -o  main  main.c

linux除錯core檔案

core dump test.c 1 include 2 3 const char str test 45 void core test 6 9 10 int main 11 以上為除錯 編譯完成以後 當前目錄ls 已經找到了core 檔案 root localhost gongmh ls bate...

core檔案除錯

在程式不尋常退出時,核心會在當前工作目錄下生成乙個core檔案 是乙個記憶體映像,同時加上除錯資訊 使用gdb來檢視core檔案,可以指示出導致程式出錯的 所在檔案和行數。1.core檔案的生成開關和大小限制 1 使用ulimit c命令可檢視core檔案的生成開關。若結果為0,則表示關閉了此功能,...

Linux下core檔案除錯方法

在程式不尋常退出時,核心會在當前工作目錄下生成乙個core檔案 是乙個記憶體映像,同時加上除錯資訊 使用gdb來檢視core檔案,可以指示出導致程式出錯的 所在檔案和行數。1.core檔案的生成開關和大小限制 1 使用ulimit c命令可檢視core檔案的生成開關。若結果為0,則表示關閉了此功能,...