




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
演武場之“我與經典代碼”分享—段錯誤調試編制日期:2016-1-4編制人員:馬MM目錄演講目的段錯誤調試方法代碼性質黑代碼EPS組件模塊-SPS-PAI_V11問題引入通常linux環境下的項目開發中,經常會遇到段錯誤‘Segmentationfault’問題,這里我對linux環境下出現的段錯誤做一個簡單小結。段錯誤的產生段錯誤是指訪問的內存超出了系統給程序所設定的內存空間,例如訪問了不存在的內存地址、訪問了系統保護的內存地址、訪問了只讀的內存地址等等情況。int*ptr=NULL;
*ptr=0;char*ptr="test";strcpy(ptr,"TEST");4訪問了只讀的內存地址 charc='c'; printf("%s\n",c); intb=10;
printf("%s\n",b);在打印字符串的時候,實際上是打印某個地址開始的所有字符,但是當你想把整數當字符串打印的時候,這個整數被當成了字符串的地址,然后printf從這個地址開始去打印字符,直到某個位置上的值為\0。所以,如果這個整數代表的地址不存在或者不可訪問,自然也是訪問了不該訪問的內存——segmentationfault5我們的代碼1在我們的代碼中也出現過這樣的段錯誤。
chartest[1];
printf(“%c”,test[1000000000]);這里是比較極端的例子,但是實際工作中經常會出現,是個明顯的數組越界的問題,這個地址可能是根本就不存在的char**ppstr=NULL;printf(“*ppstr==%s\n”,(*ppstr));memcpy(*ppstr,“test”,4);memset(…7我們的代碼2錯在pathName
=
strcat(“/proc”,fileName);這行
“/proc”,是靜態字符串,字符串常量,他的存儲空間在編譯期間已經分配,大小是固定的,不能對字符串常量進行賦值。
你使用strcat,將fileName向"/proc"后面添加,當然會出錯,
仔細閱讀一下strcat的用法DESCRIPTIONThestrcat()functionappendsthesrcstringtothedeststring,overwritingthenullbyte('\0')attheendofdest,andthenaddsaterminatingnullbyte.Thestringsmaynotoverlap,andthedeststringmusthaveenoughspacefortheresult.8我們的代碼3把src所指字符串添加到dest結尾處(覆蓋dest結尾處的‘\0’)。src和dest所指內存區域不可以重疊且dest必須有足夠的空間來容納src的字符串。使用printf輸出信息這個是看似最簡單但往往很多情況下十分有效的調試方式,可以說是程序員用的最多的調試方式。為了方便使用這種方法,可以使用條件編譯指令#ifdefDEBUG和#endif把printf函數包起來(#if0和#endif)。9段錯誤的調試方法使用gcc和gdb在編譯階段加上-g參數gcc-gmain.c-omain使用gdb命令調試程序10段錯誤的調試方法11使用gdb命令調試程序12進入gdb后,運行程序1、在使用指針時,定義了指針后記得初始化指針,在使用的時候記得判斷是否為NULL。2、在使用數組時,注意數組是否被初始化,數組下標
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 船務合作協議書
- 美國公司協議書
- 舞臺服務協議書
- 房子免裝修出租協議書
- 無盈利店鋪轉讓協議書
- 美股談判協議書
- 船舶退伙協議書
- 承包地合同補償協議書
- 妻子和公公調解協議書
- 財產確權協議書
- 年產10噸功能益生菌凍干粉的工廠設計改
- 張克非《公共關系學》(修訂版)筆記和課后習題詳解
- 拔牙術的禁忌癥
- 清潔能源 氫能
- 項目每日情況報告
- 專業知識二湯以恒口訣(完整版)
- GA/T 1133-2014基于視頻圖像的車輛行駛速度技術鑒定
- XX項目不動產權籍調查技術設計書
- 檢驗科三基測試試題與答案
- 三調土地利用現狀分類和三大地類對應甄選
- 中國醫院質量安全管理 第4-6部分:醫療管理 醫療安全(不良)事件管理 T∕CHAS 10-4-6-2018
評論
0/150
提交評論