簡體   English   中英

C中的分段錯誤,核心轉儲,gdb輸出

[英]segmentation fault in C, core dumped, gdb output

我有這個C代碼運行正常,直到我的系統升級到Scientific Linux 6.它有一些OpenGL的東西,它用gcc編譯這些選項

-lncurses -lX11 -lGL -lm -g 

但后來又出現了錯誤。 這篇文章后我得到了這個

bash-4.1$ gdb test core.5593
GNU gdb (GDB) Red Hat Enterprise Linux (7.2-60.el6_4.1)
Copyright (C) 2010 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-redhat-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /home/kde8/test...(no debugging symbols found)...done.
[New Thread 5593]
Missing separate debuginfo for 
Try: yum --disablerepo='*' --enablerepo='*-debug*' install /usr/lib/debug/.build-id/50/fc20fea18a6f375789f0f86e28f463d50714fd
Reading symbols from /usr/lib64/libX11.so.6...(no debugging symbols found)...done.
Loaded symbols for /usr/lib64/libX11.so.6
Reading symbols from /usr/lib64/nvidia/libGL.so.1...(no debugging symbols found)...done.
Loaded symbols for /usr/lib64/nvidia/libGL.so.1
Reading symbols from /lib64/libm.so.6...(no debugging symbols found)...done.
Loaded symbols for /lib64/libm.so.6
Reading symbols from /lib64/libncurses.so.5...(no debugging symbols found)...done.
Loaded symbols for /lib64/libncurses.so.5
Reading symbols from /lib64/libc.so.6...(no debugging symbols found)...done.
Loaded symbols for /lib64/libc.so.6
Reading symbols from /lib64/libtinfo.so.5...(no debugging symbols found)...done.
Loaded symbols for /lib64/libtinfo.so.5
Reading symbols from /usr/lib64/libxcb.so.1...(no debugging symbols found)...done.
Loaded symbols for /usr/lib64/libxcb.so.1
Reading symbols from /lib64/libdl.so.2...(no debugging symbols found)...done.
Loaded symbols for /lib64/libdl.so.2
Reading symbols from /usr/lib64/nvidia/libGLcore.so.1...(no debugging symbols found)...done.
Loaded symbols for /usr/lib64/nvidia/libGLcore.so.1
Reading symbols from /usr/lib64/nvidia/tls/libnvidia-tls.so.1...(no debugging symbols found)...done.
Loaded symbols for /usr/lib64/nvidia/tls/libnvidia-tls.so.1
Reading symbols from /usr/lib64/libXext.so.6...(no debugging symbols found)...done.
Loaded symbols for /usr/lib64/libXext.so.6
Reading symbols from /lib64/ld-linux-x86-64.so.2...(no debugging symbols found)...done.
Loaded symbols for /lib64/ld-linux-x86-64.so.2
Reading symbols from /usr/lib64/libXau.so.6...(no debugging symbols found)...done.
Loaded symbols for /usr/lib64/libXau.so.6
Core was generated by `./test'.
Program terminated with signal 11, Segmentation fault.
#0  0x0000000000408169 in InitConds ()
Missing separate debuginfos, use: debuginfo-install glibc-2.12-1.107.el6.x86_64 libX11-1.5.0-4.el6.x86_64 libXau-1.0.6-4.el6.x86_64 libXext-1.3.1-2.el6.x86_64 libxcb-1.8.1-1.el6.x86_64 ncurses-libs-5.7-3.20090208.el6.x86_64

我嘗試了debuginfo安裝,但收到了這條消息:

No debuginfo packages available to install

嘗試使用gdb實際運行程序,而不僅僅是加載核心文件。 它可能會更有幫助。 您也可以嘗試使用valgrind來運行它:它是一個用於內存調試的神奇工具。 即使沒有debuginfo,您也可以找到源文件中的哪一行觸發崩潰。

確保在啟用調試的情況下編譯程序( gcc -ggdb )。

從命令行輸入以下命令: gdb [program name]這將打開gdb調試器。 run [command line arguments]現在程序將出現故障。 backtrace這將顯示程序崩潰的位置。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM