青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

GLORY | 學習·記錄

coding for life

UVA 457 | 什么是Core Dump?

UVA457是個水題,但是我還是碰到了一些小問題。

1.開了一個state[50][42]數組在main函數里面,結果提交之后發現runtime error,覺著是堆棧溢出了。突然想起來50*42>2000,這種數組一定是開在main外面的,不然必然堆棧溢出。
2.是讀題不仔細,當成了多重輸入,搞了一個while(scanf(...)),結果超時了。第一次在UVA OJ上面超時。

但是這篇文章重點不是講這個,而是講我在運行過程中經常遇到的core dumped現象。我在網上找到一點資料,貼在下面:

原帖:http://blogold.chinaunix.net/u3/98822/showart_2093542.html


什么是Core Dump?
Core的意思是內存, Dump的意思是扔出來, 堆出來.
開發和使用Unix程序時, 有時程序莫名其妙的down了, 卻沒有任何的提示(有時候會提示core dumped). 這時候可以查看一下有沒有形如core.進程號的文件生成, 這個文件便是操作系統把程序down掉時的內存內容扔出來生成的, 它可以做為調試程序的參考.
core dump又叫核心轉儲, 當程序運行過程中發生異常, 程序異常退出時, 由操作系統把程序當前的內存狀況存儲在一個core文件中, 叫core dump.

如何使用core文件?
gdb -c core文件路徑 [應用程序的路徑]
進去后輸入where回車, 就可以顯示程序在哪一行當掉的, 在哪個函數中.

為什么沒有core文件生成呢?
有時候程序down了, 但是core文件卻沒有生成. core文件的生成跟你當前系統的環境設置有關系, 可以用下面的語句設置一下, 然后再運行程序便成生成core文件.
ulimit -c unlimited
沒有找到core文件,我們改改ulimit的設置,讓它產生。1024是隨便取的,要是core文件大于1024個塊,就產生不出來了。)
$ ulimit -c 1024 (轉者注: 使用-c unlimited不限制core文件大小

core文件生成的位置一般于運行程序的路徑相同, 文件名一般為core.進程號

4. 用gdb查看core文件:
下面我們可以在發生運行時信號引起的錯誤時發生core dump了.
發生core dump之后, 用gdb進行查看core文件的內容, 以定位文件中引發core dump的行.
gdb [exec file] [core file]
如:
gdb ./test test.core
在進入gdb后, 用bt命令查看backtrace以檢查發生程序運行到哪里, 來定位core dump的文件->行.

===========================================================================

造成程序core dump的原因很多,這里根據以往的經驗總結一下:

1 內存訪問越界

  a) 由于使用錯誤的下標,導致數組訪問越界

  b) 搜索字符串時,依靠字符串結束符來判斷字符串是否結束,但是字符串沒有正常的使用結束符

  c) 使用strcpy, strcat, sprintf, strcmp, strcasecmp等字符串操作函數,將目標字符串讀/寫爆。應該使用strncpy, strlcpy, strncat, strlcat, snprintf, strncmp, strncasecmp等函數防止讀寫越界。

2 多線程程序使用了線程不安全的函數。

應該使用下面這些可重入的函數,尤其注意紅色標示出來的函數,它們很容易被用錯:

asctime_r(3c) gethostbyname_r(3n) getservbyname_r(3n) ctermid_r(3s) gethostent_r(3n) getservbyport_r(3n) ctime_r(3c) getlogin_r(3c) getservent_r(3n) fgetgrent_r(3c) getnetbyaddr_r(3n) getspent_r(3c) fgetpwent_r(3c) getnetbyname_r(3n) getspnam_r(3c) fgetspent_r(3c) getnetent_r(3n) gmtime_r(3c) gamma_r(3m) getnetgrent_r(3n) lgamma_r(3m) getauclassent_r(3) getprotobyname_r(3n) localtime_r(3c) getauclassnam_r(3) etprotobynumber_r(3n) nis_sperror_r(3n) getauevent_r(3) getprotoent_r(3n) rand_r(3c) getauevnam_r(3) getpwent_r(3c) readdir_r(3c) getauevnum_r(3) getpwnam_r(3c) strtok_r(3c) getgrent_r(3c) getpwuid_r(3c) tmpnam_r(3s) getgrgid_r(3c) getrpcbyname_r(3n) ttyname_r(3c) getgrnam_r(3c) getrpcbynumber_r(3n) gethostbyaddr_r(3n) getrpcent_r(3n)

3 多線程讀寫的數據未加鎖保護。

對于會被多個線程同時訪問的全局數據,應該注意加鎖保護,否則很容易造成core dump

4 非法指針

  a) 使用空指針

  b) 隨意使用指針轉換。一個指向一段內存的指針,除非確定這段內存原先就分配為某種結構或類型,或者這種結構或類型的數組,否則不要將它轉換為這種結構或類型的指針,而應該將這段內存拷貝到一個這種結構或類型中,再訪問這個結構或類型。這是因為如果這段內存的開始地址不是按照這種結構或類型對齊的,那么訪問它時就很容易因為bus error而core dump.

5 堆棧溢出

不要使用大的局部變量(因為局部變量都分配在棧上),這樣容易造成堆棧溢出,破壞系統的棧和堆結構,導致出現莫名其妙的錯誤。

-------
我自己程序core dumped就是因為第5個原因,堆棧溢出。我的局部數組開的過大,而局部變量分配在棧上,導致堆棧溢出。

posted on 2011-03-14 08:24 meglory 閱讀(568) 評論(0)  編輯 收藏 引用 所屬分類: AlgorithmsLinux

導航

隨筆分類

隨筆檔案

最新評論

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲人在线视频| a4yy欧美一区二区三区| 久久精品一区二区国产| 亚洲欧美日韩在线不卡| 国产伦精品一区二区| 欧美在线视频观看| 久久精品91久久香蕉加勒比| 激情一区二区三区| 亚洲成人自拍视频| 欧美日韩国产a| 性色av香蕉一区二区| 久久久99免费视频| 亚洲久久视频| 亚洲一区二区三区中文字幕| 国产日韩欧美高清| 欧美超级免费视 在线| 欧美人与禽猛交乱配视频| 亚洲综合色激情五月| 欧美在线观看www| 亚洲精品一区在线观看| 中文成人激情娱乐网| 精品99一区二区| 日韩视频精品在线观看| 国产一级一区二区| 亚洲美女黄网| 国色天香一区二区| 一区二区三区视频在线| 一区在线免费观看| 夜夜嗨av一区二区三区网站四季av| 国产精品日韩| 亚洲国产裸拍裸体视频在线观看乱了中文 | 亚洲永久网站| 久久精品国产免费看久久精品| 亚洲精品日韩综合观看成人91| 亚洲一区二区不卡免费| 亚洲国产一区二区在线| 亚洲欧美在线高清| 一区二区三区高清视频在线观看| 欧美一区二区三区免费视频| 一本久道久久综合中文字幕| 久久精品欧洲| 午夜在线电影亚洲一区| 欧美久久久久久蜜桃| 美女黄毛**国产精品啪啪| 国产精品免费观看视频| 亚洲人成在线观看一区二区| 激情综合网址| 亚洲欧美久久久| 亚洲视频中文| 欧美激情aaaa| 亚洲国产综合在线| 亚洲国产欧美国产综合一区| 欧美一级理论性理论a| 亚洲亚洲精品在线观看| 欧美日韩国产综合一区二区| 欧美国内亚洲| 亚洲国产精品专区久久| 久久精品123| 久久久久国产精品人| 国产精品亚洲网站| 亚洲一级网站| 亚洲欧美中文日韩v在线观看| 欧美日本三区| 99国产精品国产精品毛片| 日韩一区二区精品| 欧美成人精品一区二区三区| 美女视频黄a大片欧美| 国产一区自拍视频| 久久精品人人做人人综合| 久久人91精品久久久久久不卡| 国产欧美日韩中文字幕在线| 亚洲欧美日韩精品久久亚洲区| 亚洲欧美日韩一区二区三区在线观看| 欧美日韩一二三四五区| 99国产精品私拍| 亚洲男同1069视频| 国产精品夜夜夜| 欧美一区午夜精品| 国产精品极品美女粉嫩高清在线 | 午夜天堂精品久久久久| 欧美日韩在线看| 一区二区欧美在线观看| 亚洲欧美视频在线| 国产日韩亚洲欧美综合| 久久精品卡一| 亚洲国内自拍| 午夜视频精品| 亚洲成在人线av| 欧美理论在线播放| 亚洲小说春色综合另类电影| 久久aⅴ国产紧身牛仔裤| 国产在线观看91精品一区| 久久综合久久综合这里只有精品 | 亚洲免费观看在线视频| 亚洲欧美视频在线观看| 国产小视频国产精品| 久久精品国产亚洲高清剧情介绍| 欧美大片一区二区| 亚洲夜间福利| 激情五月婷婷综合| 欧美午夜视频网站| 久久久久久久999| 亚洲免费观看高清在线观看| 久久久久国产精品一区三寸 | 欧美三日本三级少妇三2023| 午夜性色一区二区三区免费视频| 麻豆精品精华液| 亚洲一本大道在线| 亚洲成人自拍视频| 国产精品家庭影院| 女仆av观看一区| 亚洲欧美网站| 日韩视频欧美视频| 欧美第一黄网免费网站| 亚洲欧美网站| 中文一区字幕| 亚洲国产乱码最新视频| 国产精品一区二区三区观看| 欧美福利视频在线| 久久精品国产91精品亚洲| 亚洲裸体俱乐部裸体舞表演av| 久久久久久久久久久久久久一区| 在线视频一区观看| 最新高清无码专区| 激情欧美一区二区三区| 国产精品综合| 国产精品一级| 国产精品福利久久久| 欧美区高清在线| 欧美wwwwww| 女主播福利一区| 久热成人在线视频| 香蕉久久夜色| 欧美有码在线视频| 性伦欧美刺激片在线观看| 亚洲伊人伊色伊影伊综合网| 亚洲美女福利视频网站| 亚洲日韩中文字幕在线播放| 亚洲电影av| 欧美成人午夜激情| 免费不卡亚洲欧美| 麻豆九一精品爱看视频在线观看免费 | 欧美激情一区二区三区在线视频观看 | 亚洲国产成人精品久久久国产成人一区 | 亚洲国产欧美一区二区三区久久| 国产一区二区三区观看| 国产情侣久久| 狠狠网亚洲精品| 在线观看不卡| 亚洲日本欧美天堂| 亚洲精品一区二区三区福利| 亚洲九九九在线观看| 日韩一区二区高清| 中日韩视频在线观看| 亚洲永久免费精品| 欧美诱惑福利视频| 久久久噜噜噜久久久| 免费看亚洲片| 91久久久亚洲精品| 99精品免费| 先锋影音久久| 裸体一区二区| 欧美日韩成人综合| 国产精品天美传媒入口| 国产一区二区精品在线观看| 激情综合激情| 日韩网站在线观看| 香蕉免费一区二区三区在线观看| 欧美一级视频一区二区| 美女图片一区二区| 亚洲精品久久在线| 午夜视频在线观看一区| 久久亚洲国产精品一区二区| 欧美精品自拍| 国产一区二区三区精品久久久| 亚洲电影在线观看| 亚洲一区二区高清| 久久亚洲欧洲| 日韩亚洲视频在线| 久久久久久久久久久一区| 欧美日本在线| 国产香蕉久久精品综合网| 亚洲破处大片| 欧美资源在线| 日韩一区二区福利| 久久婷婷久久| 国产精品网站一区| 亚洲日本中文字幕| 久久久久久久综合狠狠综合| 亚洲国产欧美另类丝袜| 午夜精品久久久久久99热| 欧美成人免费全部| 国产视频一区欧美| 亚洲图片自拍偷拍| 欧美成人国产一区二区| 亚洲欧美日韩天堂一区二区| 欧美精品乱人伦久久久久久| 激情综合在线| 久久精品五月婷婷| 一区二区三区日韩精品|