妖城在线论坛: _7 X6 C2 g. ]0 B) [% t
The problem that no `core' file is created on a segmentation fault; Locate errors in the source with GDB and `core' files
; E" `, R8 g L/ W, t妖城在线论坛Linux 程序在遇到段错误(常见的是由非法访问内存引起)的时候会产生 core 文件,如果这个程序包含调试信息(编译的时候加 -g 选项),那么使用 gdb 读取这个 core 文件可以快速定位出错的源代码。原来在某软件公司实习的时候(用 RedHat Enterprise Linux)觉得这样非常方便查错,但我自己用的 Debian GNU/Linux 却默认不生成这个文件。—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート% R1 v- L" o+ p+ q- }# X- C
检查以后发现原因是 core 文件最大尺寸(用 ulimit -c 查看)是 0,把它设置成非 0 值就可以了,如:
, ~9 k, _& V: V, f% e7 M2 I% o. `魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表ulimit -c 2048(设置 core 文件最大尺寸为 2048 blocks,1block=512bytes,因此这里设置的其实是 1MiB)
5 K; c3 D: L4 N2 Q- c—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲートulimit -c unlimited(不限 core 文件尺寸)
i9 L3 z5 `" b附:用 gdb 根据 core dump 文件定位错误的办法。
2 H, e' U0 u/ e( ]魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表用这个程序作一个测试:妖城在线论坛& b+ Z& n) p- K$ j
int foo (int *p)
y, R& P& B3 H—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート{妖城在线论坛- s& Z3 A q# q# b+ W6 ]4 P
return *p;魔力私服,最新魔力宝贝私服技术交流3 d' U" x0 G" T' x
}魔力私服,最新魔力宝贝私服技术交流6 k( j# g' \( P6 C' r
main()bbs.mocwww.com+ t4 F4 x! J4 k7 j
{妖城在线论坛1 ^! s) g9 z, A& `: m$ I; n5 c
foo (0);
9 B, l- m9 k$ V+ rbbs.mocwww.com}bbs.mocwww.com; @3 `4 b o" ?1 A A
derek@dli: /tmp $ gcc -g a.c
0 F$ H6 ]1 P( {# B; R魔力私服,最新魔力宝贝私服技术交流derek@dli: /tmp $ ./a.out
+ f" T: K9 e# F- f; Y6 c, k5 F* V) \段错误 (core dumped)
! E5 P; T" z# I. D魔力私服,最新魔力宝贝私服技术交流derek@dli: /tmp $ gdb ./a.out -c core
7 A9 [) F) {( f3 b4 Q: ?! e, b0 W2 ~妖城在线论坛(这里略去约十行其他信息)魔力私服,最新魔力宝贝私服技术交流5 B0 M0 d" g# K* C z+ C' u
Core was generated by `./a.out'.
, S: I4 `- e* g7 }+ U6 O2 w- g8 @1 vbbs.mocwww.comProgram terminated with signal 11, Segmentation fault.
# W7 b& w6 F. Z/ P( G妖城在线论坛#0 0x0804834a in foo (p=0x0) at a.c:3
9 l* E. M: P6 q" K0 t' j魔力私服,最新魔力宝贝私服技术交流3 return *p;
' d1 H$ W) t( e8 f9 t8 a$ z妖城在线论坛如果再输入一条命令 bt,就可以看得清清楚楚错误是在什么时机产生的:bbs.mocwww.com! n5 a+ T( [ p( Y1 @
(gdb) bt
; V7 y, Y7 T* i5 _妖城在线论坛#0 0x0804834a in foo (p=0x0) at a.c:3—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート$ M9 Y* h- b0 @ S& B
#1 0x0804836b in main () at a.c:8
0 h5 q# h; G5 ^8 C% V! |% l1 Q魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表不能有比这更清楚的错误信息了!如果是在 Windows 下,就老老实实 Trace and Step 吧。
& y* a% u9 z1 i4 B9 w* ^2 a5 ]1 {魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表
S8 [4 I6 R# ~5 M' @魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表百度知道摘的有关段错误的解释; ~( Q6 x* p6 N3 V
参考一下便于理解—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート& j( a4 i9 T2 x: M+ W& G2 p
至于出错的原因 最好贴更多的信息 上面应该还有其他错误提示才对吧魔力私服,最新魔力宝贝私服技术交流7 b$ d1 K+ y5 \! G2 `