一江春水向東流

          做一個(gè)有思想的人,期待與每一位熱愛思考的人交流,您的關(guān)注是對(duì)我最大的支持。

            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            44 隨筆 :: 139 文章 :: 81 評(píng)論 :: 0 Trackbacks
          ??? 在linux下進(jìn)行C程序時(shí),難免會(huì)出現(xiàn)這里那里的錯(cuò)誤,對(duì)于像段錯(cuò)誤的調(diào)試,對(duì)于生手可能比較麻煩,無從下手,我想這是一個(gè)C程序員的必經(jīng)的經(jīng)歷。一旦出現(xiàn)這樣的錯(cuò)誤是相當(dāng)棘手的。相信調(diào)試過幾次樣的錯(cuò)誤后再次遇到就能很輕松的解決了。
          ??? 段錯(cuò)誤的產(chǎn)生主要是由于內(nèi)存操作有誤,如訪問的數(shù)組越界,向空地址賦值,取值等。調(diào)試段錯(cuò)誤是要借助gdb調(diào)試工具。對(duì)于那些立即出現(xiàn)的錯(cuò)誤很好調(diào)試,如果是很時(shí)間才出現(xiàn)的錯(cuò)誤,就可以通過生成core文件。通過調(diào)試core文件定位錯(cuò)誤產(chǎn)生的地方,而有些錯(cuò)誤并非是一眼能看出來。像在多線程情況下,在沒有保護(hù)的情況下操作數(shù)據(jù)庫時(shí)也會(huì)產(chǎn)生段錯(cuò)誤。一個(gè)不可重入函數(shù)在單線程下運(yùn)行沒有問題。可能到多線程情況下就會(huì)出現(xiàn)越界的情況。因而意識(shí)到多線程下的并發(fā)機(jī)制。
          ??? 對(duì)于死循環(huán)的調(diào)試,也可以借助gdb,當(dāng)程序出現(xiàn)死循環(huán)時(shí),將gdb attach到程序上,如果 是主進(jìn)程序出現(xiàn)死循環(huán),可以通過設(shè)斷點(diǎn)方法跟蹤,而對(duì)于多線程程序可以通過查看哪個(gè)線程在運(yùn)行,基本上能定位錯(cuò)誤出現(xiàn)的地方。
          posted on 2008-01-30 00:45 allic 閱讀(2694) 評(píng)論(0)  編輯  收藏 所屬分類: C/C++
          主站蜘蛛池模板: 博湖县| 莲花县| 东台市| 宜阳县| 五莲县| 边坝县| 兴城市| 宁乡县| 江油市| 禹城市| 德格县| 广元市| 寿光市| 奇台县| 湘潭县| 高邮市| 开阳县| 海宁市| 扶风县| 广德县| 滕州市| 苗栗市| 高安市| 宁河县| 通许县| 勐海县| 鄯善县| 锡林浩特市| 静宁县| 扎兰屯市| 兴仁县| 司法| 石林| 手游| 贵南县| 吉隆县| 元谋县| 新蔡县| 曲阜市| 开化县| 呼伦贝尔市|