怎樣用GDB調試core文件
1、祭出linux下經典的調試器GDB,首先帶著core文件載入程序:gdb exefile core,這里需要注意的這個core文件必須是exefile產生的,否則符號表會對不上。
2、從指定文件中讀取符號表。-se file 從指定文件中讀取符號表信息,并把他用在可執行文件中。-core file -c file 調試時core dump的core文件。-directory directory -d directory 加入一個源文件的搜索路徑。
3、要檢查一個 core 文件,首先用 gdb 可執行文件名 來調試產生core文件的可執行程序: 命令 core會分析 可執行程序名.core 文件 注:如果當前不是 core 文件所在目錄,首先要執行 dir /可執行程序名.core的路徑/。
怎么打開core文件
1、要使用Vim編輯器打開core-site.xml文件,先在終端中進入存儲該文件的目錄,使用命令“vim core-site.xml”打開文件。
2、CDR文件其實就是CorelDraw圖像制作軟件文件,那么需要打開CDR文件就很簡單了,CDR文件屬于CorelDraw專用文件存儲格式,使用匹配軟件打開瀏覽,你需要安裝CoreDraw相關軟件后才能打開該圖形文件。
3、cdr文件怎么打開?知道了cdr文件其實就是CorelDraw圖像制作軟件文件,那么需要打開cdr文件就很簡單了,CDR文件屬于CorelDraw專用文件存儲格式,必須使用匹配軟件才能打開瀏覽,你需要安裝CoreDraw相關軟件后才能打開該圖形文件。
4、首先是運行程序遇到這樣的錯誤段錯誤(核心已轉儲)。打開產生core文件的指令。再次運行出現錯誤的程序。使用gdb指令運行core文件,排查錯誤。
5、在桌面上找到CorelDRAW軟件了,點擊打開。這個cdr格式的文件是由一款名為coreldraw軟件產生的,使用它默認保存的格式就是cdr。我們打開CorelDRAW軟件,在里面我們點擊文件-打開,如圖所示。
linux下終端運行文件,代碼沒有錯誤,為什么出現段錯誤。
1、主要有以下幾個方面的原因:內存訪問出錯 這類問題的典型代表就是數組越界。非法內存訪問 出現這類問題主要是程序試圖訪問內核段內存而產生的錯誤。棧溢出 Linux默認給一個進程分配的棧空間大小為8M。
2、pthread_t mythd;if(0!=pthread_create(&mythd,0,threadTest,0))printf(create error\n);pthread_create函數建立線程,并將新建線程ID保存到mythd中。如果將新建線程ID向地址0保存,會發生越界錯誤。
3、說明你的代碼在指針這里出了問題。。最怕的是編譯過了但是程序跑飛了的這種邏輯錯誤。改都不知道怎么改。。
4、dmesg可以在應用程序crash掉時,顯示內核中保存的相關信息。如下所示,通過dmesg命令可以查看發生段錯誤的程序名稱、引起段錯誤發生的內存地址、指令指針地址、堆棧指針地址、錯誤代碼、錯誤原因等。
5、= 5;proc(&mem-memc);return 0;} 這個是編譯無錯,運行到最后報段錯誤。后來將將stMem *mem改為stMem mem后其他的相應修改就沒錯了。應該是指針必須指向某個數據或結構。就是不知道你的錯誤是不是和我的一樣。