一江春水向東流

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

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            44 隨筆 :: 139 文章 :: 81 評論 :: 0 Trackbacks
          ??? 在linux下進行C程序時,難免會出現這里那里的錯誤,對于像段錯誤的調試,對于生手可能比較麻煩,無從下手,我想這是一個C程序員的必經的經歷。一旦出現這樣的錯誤是相當棘手的。相信調試過幾次樣的錯誤后再次遇到就能很輕松的解決了。
          ??? 段錯誤的產生主要是由于內存操作有誤,如訪問的數組越界,向空地址賦值,取值等。調試段錯誤是要借助gdb調試工具。對于那些立即出現的錯誤很好調試,如果是很時間才出現的錯誤,就可以通過生成core文件。通過調試core文件定位錯誤產生的地方,而有些錯誤并非是一眼能看出來。像在多線程情況下,在沒有保護的情況下操作數據庫時也會產生段錯誤。一個不可重入函數在單線程下運行沒有問題。可能到多線程情況下就會出現越界的情況。因而意識到多線程下的并發機制。
          ??? 對于死循環的調試,也可以借助gdb,當程序出現死循環時,將gdb attach到程序上,如果 是主進程序出現死循環,可以通過設斷點方法跟蹤,而對于多線程程序可以通過查看哪個線程在運行,基本上能定位錯誤出現的地方。
          posted on 2008-01-30 00:45 allic 閱讀(2694) 評論(0)  編輯  收藏 所屬分類: C/C++
          主站蜘蛛池模板: 和顺县| 鹤壁市| 睢宁县| 金川县| 漯河市| 大同县| 仪征市| 上犹县| 廉江市| 平凉市| 富锦市| 确山县| 固始县| 门头沟区| 呼和浩特市| 容城县| 崇州市| 齐河县| 墨玉县| 马龙县| 平和县| 新和县| 凤城市| 房山区| 江都市| 昌乐县| 揭西县| 曲周县| 安吉县| 开封县| 卢氏县| 宁明县| 横山县| 库尔勒市| 太谷县| 麻阳| 石景山区| 于田县| 昭平县| 唐河县| 梅河口市|