—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート% ]) T0 B+ Q+ m: m3 T( I
The problem that no `core' file is created on a segmentation fault; Locate errors in the source with GDB and `core' files魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表% g- Y% W6 F! {& O/ P
Linux 程序在遇到段错误(常见的是由非法访问内存引起)的时候会产生 core 文件,如果这个程序包含调试信息(编译的时候加 -g 选项),那么使用 gdb 读取这个 core 文件可以快速定位出错的源代码。原来在某软件公司实习的时候(用 RedHat Enterprise Linux)觉得这样非常方便查错,但我自己用的 Debian GNU/Linux 却默认不生成这个文件。
2 b( H( L1 l4 H9 v检查以后发现原因是 core 文件最大尺寸(用 ulimit -c 查看)是 0,把它设置成非 0 值就可以了,如:
/ O9 @& c1 S9 f& ?魔力私服,最新魔力宝贝私服技术交流ulimit -c 2048(设置 core 文件最大尺寸为 2048 blocks,1block=512bytes,因此这里设置的其实是 1MiB)魔力私服,最新魔力宝贝私服技术交流- H# J# V: d- |8 Y
ulimit -c unlimited(不限 core 文件尺寸)魔力私服,最新魔力宝贝私服技术交流5 U" T9 a, O9 E
附:用 gdb 根据 core dump 文件定位错误的办法。
; y1 T8 @2 q' q6 b5 H$ n" }( x妖城在线论坛用这个程序作一个测试:
4 m0 i( O: L0 u, {% f1 t/ F& O% X—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲートint foo (int *p)
9 A5 u8 n% @4 t魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表{" t J0 K% H0 h. `' a7 D
return *p;
6 k' @8 L+ g+ [' E# [& Kbbs.mocwww.com}bbs.mocwww.com- I) o$ a$ _) [1 m+ _: j
main()
/ A& p* a/ ]8 W- j. B5 n魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表{bbs.mocwww.com/ V7 E8 H6 t. P. n
foo (0);
2 S- m) K: `$ x3 a}
0 w9 E1 A1 e3 Y+ l& u魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表derek@dli: /tmp $ gcc -g a.c魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表6 A# e$ O; J- M& m) s8 k
derek@dli: /tmp $ ./a.outbbs.mocwww.com1 M6 M# h. e" @/ B. f" y
段错误 (core dumped)
! P' q+ }! ~! h) d+ A魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表derek@dli: /tmp $ gdb ./a.out -c core
: s+ T$ F% k- Jbbs.mocwww.com(这里略去约十行其他信息)
* E( J3 b/ N# C+ q% kbbs.mocwww.comCore was generated by `./a.out'.& f( C/ {" C8 \0 h; A
Program terminated with signal 11, Segmentation fault.—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート# s/ @5 b$ L& N7 p. j3 {; d
#0 0x0804834a in foo (p=0x0) at a.c:3妖城在线论坛- s- P/ ]9 L- R, E1 X0 f/ i
3 return *p;魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表3 d/ n: i( w6 Y, S* @
如果再输入一条命令 bt,就可以看得清清楚楚错误是在什么时机产生的:—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート0 S$ S2 B( E, q) n& Y* |5 R
(gdb) bt
% `# u- d* R2 g' ?1 Z( j- l#0 0x0804834a in foo (p=0x0) at a.c:3
" P% T2 C: v8 v1 q8 c% o魔力私服,最新魔力宝贝私服技术交流#1 0x0804836b in main () at a.c:8妖城在线论坛( @1 U! Y5 ?. \+ C& @ u
不能有比这更清楚的错误信息了!如果是在 Windows 下,就老老实实 Trace and Step 吧。
( x2 F( r4 o& B( m/ L2 x7 j魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表
3 R* j0 T$ n3 @—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート百度知道摘的有关段错误的解释—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート0 u) K! a! o" `+ L$ p s) L+ G
参考一下便于理解
0 }6 Q( p# z! U( V; C7 O% [妖城在线论坛至于出错的原因 最好贴更多的信息 上面应该还有其他错误提示才对吧—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート( `) M' c6 ?: l* ]& k1 {