[英]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.