一江春水向東流

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

            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++
          主站蜘蛛池模板: 桦川县| 湘潭县| 瓦房店市| 汶上县| 乌拉特前旗| 蚌埠市| 维西| 凤山县| 富民县| 淄博市| 黄石市| 襄城县| 光山县| 进贤县| 顺昌县| 建昌县| 沽源县| 青海省| 哈巴河县| 元氏县| 余庆县| 长丰县| 沽源县| 通许县| 盐山县| 射洪县| 吕梁市| 凭祥市| 寻甸| 莲花县| 虞城县| 丘北县| 根河市| 永新县| 西充县| 革吉县| SHOW| 寿阳县| 宁夏| 当阳市| 封丘县|