亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫(kù)
1234567下一頁(yè)
最近訪問板塊 發(fā)新帖
查看: 63754 | 回復(fù): 61
打印 上一主題 下一主題

月經(jīng)結(jié)貼 -- 《Segmentation Fault in Linux》 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2009-12-21 17:23 |只看該作者 |倒序?yàn)g覽
寫在前面的話
    最近CU(chinaunix)出現(xiàn)了很多問segmentation fault的帖子,其實(shí)這也是個(gè)“月經(jīng)貼”了,泡CU幾年,每個(gè)月都有人問。為了減少重復(fù)回帖,筆者結(jié)合自己的經(jīng)驗(yàn),總結(jié)了SIGSEGV在Linux中產(chǎn)生的機(jī)理,并用實(shí)際例子概括哪些編程錯(cuò)誤容易引發(fā)SIGSEGV。由于本人經(jīng)驗(yàn)有限,文中難免有疏漏和錯(cuò)誤,請(qǐng)發(fā)現(xiàn)的朋友發(fā)信到xing5820@163.com指正,筆者好即使修改。

內(nèi)容提要
  本文簡(jiǎn)單介紹了Segmentation fault發(fā)生的原因,結(jié)合實(shí)際例子描述了內(nèi)核向用戶態(tài)程序發(fā)送SIGSEGV信號(hào)的流程。文中以實(shí)例回答了常見的一些SIGSEGV問題,例如“為什么函數(shù)返回了棧還可以訪問?”、“為什么free()后的內(nèi)存仍然可以使用”、“為什么我遇到的是SIGSEGV而不是SIGILL信號(hào)”等。最后筆者結(jié)合自己的經(jīng)驗(yàn),列舉了一些預(yù)防SIGSEGV的編程習(xí)慣,供大家參考。SIGSEGV嚴(yán)格依賴操作系統(tǒng)、編譯器、硬件平臺(tái),本文基于Linux、GCC、32bit IA32架構(gòu),但對(duì)其他平臺(tái)操作系統(tǒng)也有借鑒意義。


大家在閱讀的過程中發(fā)現(xiàn)什么錯(cuò)誤,或我沒有講到的segfault情況,請(qǐng)及時(shí)指出,我好更正。

Segmentation fault in Linux.pdf

309.26 KB, 下載次數(shù): 4418

論壇徽章:
0
2 [報(bào)告]
發(fā)表于 2009-12-21 17:28 |只看該作者
下來看看。。。

論壇徽章:
2
青銅圣斗士
日期:2015-11-26 06:15:59數(shù)據(jù)庫(kù)技術(shù)版塊每日發(fā)帖之星
日期:2016-07-24 06:20:00
3 [報(bào)告]
發(fā)表于 2009-12-21 17:28 |只看該作者

回復(fù) #1 zx_wing 的帖子

沙發(fā)居然被 …… 搶了……
留名

論壇徽章:
2
青銅圣斗士
日期:2015-11-26 06:15:59數(shù)據(jù)庫(kù)技術(shù)版塊每日發(fā)帖之星
日期:2016-07-24 06:20:00
4 [報(bào)告]
發(fā)表于 2009-12-21 17:39 |只看該作者

回復(fù) #1 zx_wing 的帖子

看了一下……  看來那帖子我是白費(fèi)口水了……
表面上說接受, 實(shí)際上依然是在鼓勵(lì)大家編寫不可移植代碼 —— 而且, 并不是為了得到什么實(shí)際的好處。

論壇徽章:
1
2015年辭舊歲徽章
日期:2015-03-03 16:54:15
5 [報(bào)告]
發(fā)表于 2009-12-21 17:58 |只看該作者
當(dāng)你的一個(gè)需求,標(biāo)準(zhǔn)的方法不能滿足時(shí),只有兩種可能:
1.從一開始的設(shè)計(jì)就錯(cuò)了,才會(huì)導(dǎo)致錯(cuò)誤的需求;
2.你讀過的代碼太少,不知道業(yè)界解決該問題的標(biāo)準(zhǔn)方法是什么。

論壇徽章:
0
6 [報(bào)告]
發(fā)表于 2009-12-21 18:04 |只看該作者
原帖由 OwnWaterloo 于 2009-12-21 17:39 發(fā)表
看了一下……  看來那帖子我是白費(fèi)口水了……
表面上說接受, 實(shí)際上依然是在鼓勵(lì)大家編寫不可移植代碼 —— 而且, 并不是為了得到什么實(shí)際的好處。

哈哈哈,我是接受你看問題的角度,其它的我持保留意見。
至于這篇文章嘛,已經(jīng)不在標(biāo)準(zhǔn)范疇了,我一開始也說,這是非常平臺(tái)相關(guān)的

論壇徽章:
0
7 [報(bào)告]
發(fā)表于 2009-12-21 18:13 |只看該作者
樓主應(yīng)該寫書啊, 做獨(dú)立技術(shù)寫作也不錯(cuò)…

論壇徽章:
2
青銅圣斗士
日期:2015-11-26 06:15:59數(shù)據(jù)庫(kù)技術(shù)版塊每日發(fā)帖之星
日期:2016-07-24 06:20:00
8 [報(bào)告]
發(fā)表于 2009-12-21 18:18 |只看該作者

回復(fù) #6 zx_wing 的帖子

char a[] = "hello";
char* p;

for ( p = a+sizeof(a)-2; p>=a; p-- )
      printf("%c\n", *p );

與:

for ( p = a+sizeof(a)-2; p!=a; p-- )
      printf("%c\n", *p );


效果是一樣的: 如果真出現(xiàn)那帖里的情況, 不會(huì)越界,不會(huì)引發(fā)signal, 而是死循環(huán)。



上面2個(gè)版本與下面一個(gè)版本相比:

for ( p = a+sizeof(a)-1; p!=a /* or p>=a */; ) {
      --p;
      printf("%c\n", *p );
}

得到的好處就是 : 少寫一行代碼。  就為了這么點(diǎn)好處值得將代碼變得不可移植么
如果推薦下面一種寫法, 什么煩惱都沒有了, 比如不需要補(bǔ)充這么一句:
筆者無法100%保證,所以大家在實(shí)踐中還是各自斟酌吧。



當(dāng)然,會(huì)出現(xiàn)回繞的機(jī)器只是假象出來的, 也許下面一種寫法的好處永遠(yuǎn)得不到。
我只是反感這么一種風(fēng)氣: 將自己的實(shí)踐、 不經(jīng)過嚴(yán)格的論證, 就上升到理論高度, 認(rèn)為那是普遍真理。
我真的不是在說你,  你的文章里至少還有那么一句補(bǔ)充說明, 以說明這種經(jīng)驗(yàn)的適用范圍。
我其實(shí)說的是林銳…… 以及和林銳有相同傾向的一幫人……


算了, 別人寫的代碼是否可移植關(guān)我鳥事 ……   大家愛怎么寫就怎么寫好了……

[ 本帖最后由 OwnWaterloo 于 2009-12-21 18:20 編輯 ]

論壇徽章:
0
9 [報(bào)告]
發(fā)表于 2009-12-21 18:35 |只看該作者
原帖由 albcamus 于 2009-12-21 18:13 發(fā)表
樓主應(yīng)該寫書啊, 做獨(dú)立技術(shù)寫作也不錯(cuò)…

哈哈哈,哪兒有那功夫,平時(shí)忙的要死,泡個(gè)論壇都是忙里偷閑了。
上次不是chen xu過來提到說我泡CU,我差不多都要忘了有好久沒上過了。
寫書真是吃力不討好的事情,就那本在內(nèi)核版打廣告的書,我雖然只寫了一章加一節(jié),但被老板當(dāng)較字工人讓去review全書,那真是一個(gè)字一個(gè)字得看,一個(gè)字一個(gè)字的改啊,慘的不行。發(fā)現(xiàn)錯(cuò)誤還要去請(qǐng)教那些大牛原意是什么的,然后幫他們重寫。還是寫點(diǎn)這種小文好了,全憑興趣,想怎么寫就怎么寫
中國(guó)人搞技術(shù)啊,真是為了討生活,除非像老外衣食無憂純粹的"working for fun"差不多。

論壇徽章:
0
10 [報(bào)告]
發(fā)表于 2009-12-21 18:45 |只看該作者
先頂貼再看文章是lenky的一貫作風(fēng)。
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國(guó)互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP