
下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、linux下gcc的debug和優化,以及編譯過程int main(vo) int* p = 0; return a(p); int a(int *p) int y = *p; return y; rootlocalhost debug -c unlimit rootlocalhost debug gcc -wall g null.c rootlocalhost debug ./a.out segmentation fault (core mped) rootlocalhost debug null.c a.out core.21982 rootlocalhost debug yum -y i
2、nstall gdb rootlocalhost debug gdb a.out core.21982 . . . (gdb) print p no symbol table is loaded. use the command. (gdb) print p $1 = (int *) 0x0 (gdb) backace 0 0x08048389 in a (p=0x0) at null.c:10 1 0x08048377 in main () at null.c:6 (gdb) quit (gdb) 其次:優化實例(這里主要采納的是-o03和no-loops方式) rootlocalhost
3、opm test.c ilude stdio.h double powern(double d, unsigned n) double x = 1.0; unsigned j; for(j=1;j j+) x *=d; return x; int main(void) double m = 0.0; unsigned i; for(i=1;i =100000000;i+ ) sum += powern(i,i%5); printf( sum = %gn ,sum); return 0; rootlocalhost opm gcc -wall -o0 test.c -o o0 /優化等級為0-不
4、優化 rootlocalhost opm ./o0 sum = 5e+30 real 0m2.815s user 0m2.799s sys 0m0.013s rootlocalhost opm gcc -wall -o1 test.c -o o1 /優化等級為1 rootlocalhost opm time ./o1 sum = 5e+30 real 0m1.849s user 0m1.843s sys 0m0.006s rootlocalhost opm gcc -wall -o2 test.c -o o2 /優化等級為2 rootlocalhost opm time ./o2 sum =
5、5e+30 real 0m1.923s user 0m1.910s sys 0m0.011s rootlocalhost opm gcc -wall -o3 test.c -o o3 /優化等級為1 rootlocalhost opm time ./o3 sum = 5e+30 real 0m1.460s user 0m1.453s sys 0m0.006s rootlocalhost opm gcc -wall -o3 -funroll-loops test.c -o o4 /加入noloop優化 rootlocalhost opm time ./o4 sum = 5e+30 real 0m
6、1.322s user 0m1.308s sys 0m0.014s 第三:優化協助發覺debug rootlocalhost o vim uninit.c int sign(int x) int s; if (x 0) s = 1; else if (x 0) s = -1; return s; rootlocalhost o gcc -wall -c uninit.c rootlocalhost o gcc -wall -o1 -c uninit.c uninit.c: in function 'sign': uninit.c:3: warning: 's'
7、may be u uninitialized in this function rootlocalhost o gcc -wall -o2 -c uninit.c uninit.c: in function 'sign': uninit.c:3: warning: 's' may be used uninitialized in this function rootlocalhost o gcc -wall -o3 -c uninit.c uninit.c: in function 'sign': uninit.c:3: warning:
8、9;s' may be used uninitialized in this function 編譯過程描述實例 rootlocalhost hello vim hello.c include stdio.h int main(void) printf( hello world!n return 0; 第四:最后列舉下編譯的過程實例 1、 預處理器階段(p hello.c hello.i) rootlocalhost hello cpp hello.c hello.i 2、 編譯器階段(gcc -wall -s hello.i) rootlocalhost hello gcc -wal
9、l -s hello.i 3、 匯編器階段(as hello.s -o hello.o) rootlocalhost hello as hello.s -o hello.o 4、 銜接器階段(gcc hello.o) rootlocalhost hello gcc hello.o rootlocalhost hello ./a.out hello world! rootlocalhost hello file a.out /檢測可執行文件的信息 a.out: elf 32-bit lsb eable, intel 80386, version 1 (sysv), for gnu/linux 2.6.9, dynamically linked (uses shared libs), for gnu/linux 2.6.9, not stripped rootlocalhost hello l a.out /檢查用到的庫文件 lin
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 湖南省岳陽市2024-2025學年七年級數學第一學期期末綜合測試試題含解析
- 廣州科技職業技術大學《二外(2)》2023-2024學年第一學期期末試卷
- 新書推介活動方案
- 春節學校活動方案
- 數學活動月活動方案
- 新都區新春活動方案
- 文言文公益活動方案
- 施莊中心小學活動方案
- 新春寄語活動方案
- 新年省錢活動策劃方案
- 2025內蒙古森工集團招聘高校畢業生50人(第一批)筆試參考題庫附帶答案詳解
- 《動態預算管理案例》課件
- 電梯拆除及回收合同協議
- 《養牛與牛病防控技術》課件-項目一 優良牛品種識別
- 2025-2030中國加油站建設行業市場發展分析及前景趨勢與投資研究報告
- 大體積混凝土施工培訓課件
- 某集團公司薪酬管理制度
- 2025年海南會考試題及答案地理
- 員工不能勝任工作解除勞動合同范本
- 農村院子轉讓合同范本
- 中小學學校內部控制手冊
評論
0/150
提交評論