一江春水向東流

          做一個有思想的人,期待與每一位熱愛思考的人交流,您的關注是對我最大的支持。

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            44 隨筆 :: 139 文章 :: 81 評論 :: 0 Trackbacks
          ??? 在linux下進行C程序時,難免會出現這里那里的錯誤,對于像段錯誤的調試,對于生手可能比較麻煩,無從下手,我想這是一個C程序員的必經的經歷。一旦出現這樣的錯誤是相當棘手的。相信調試過幾次樣的錯誤后再次遇到就能很輕松的解決了。
          ??? 段錯誤的產生主要是由于內存操作有誤,如訪問的數組越界,向空地址賦值,取值等。調試段錯誤是要借助gdb調試工具。對于那些立即出現的錯誤很好調試,如果是很時間才出現的錯誤,就可以通過生成core文件。通過調試core文件定位錯誤產生的地方,而有些錯誤并非是一眼能看出來。像在多線程情況下,在沒有保護的情況下操作數據庫時也會產生段錯誤。一個不可重入函數在單線程下運行沒有問題。可能到多線程情況下就會出現越界的情況。因而意識到多線程下的并發機制。
          ??? 對于死循環的調試,也可以借助gdb,當程序出現死循環時,將gdb attach到程序上,如果 是主進程序出現死循環,可以通過設斷點方法跟蹤,而對于多線程程序可以通過查看哪個線程在運行,基本上能定位錯誤出現的地方。
          posted on 2008-01-30 00:45 allic 閱讀(2699) 評論(0)  編輯  收藏 所屬分類: C/C++
          主站蜘蛛池模板: 常宁市| 榆林市| 农安县| 乌鲁木齐县| 海南省| 宜宾市| 海阳市| 德保县| 扎囊县| 巴林左旗| 亳州市| 陆丰市| 邓州市| 沂源县| 潢川县| 太康县| 镇平县| 黄浦区| 二手房| 广安市| 福州市| 积石山| 梓潼县| 浠水县| 北辰区| 中江县| 广平县| 开江县| 九台市| 福泉市| 中超| 定安县| 金昌市| 杭锦后旗| 毕节市| 长春市| 崇仁县| 奉新县| 郧西县| 乐业县| 时尚|