- n2 T$ Q, L' j( b" Y! ^魔力私服,最新魔力宝贝私服技术交流The problem that no `core' file is created on a segmentation fault; Locate errors in the source with GDB and `core' filesbbs.mocwww.com0 W) C4 M3 y7 B
Linux 程序在遇到段错误(常见的是由非法访问内存引起)的时候会产生 core 文件,如果这个程序包含调试信息(编译的时候加 -g 选项),那么使用 gdb 读取这个 core 文件可以快速定位出错的源代码。原来在某软件公司实习的时候(用 RedHat Enterprise Linux)觉得这样非常方便查错,但我自己用的 Debian GNU/Linux 却默认不生成这个文件。
+ p( w# c& z- o U妖城在线论坛检查以后发现原因是 core 文件最大尺寸(用 ulimit -c 查看)是 0,把它设置成非 0 值就可以了,如:
' f& K: O' q5 ~9 ^ r0 A/ @, O3 ]3 v7 H—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲートulimit -c 2048(设置 core 文件最大尺寸为 2048 blocks,1block=512bytes,因此这里设置的其实是 1MiB)魔力私服,最新魔力宝贝私服技术交流4 s, U4 p" l; x$ b; v
ulimit -c unlimited(不限 core 文件尺寸)妖城在线论坛8 t9 h9 f, w6 `! o
附:用 gdb 根据 core dump 文件定位错误的办法。
8 y$ t8 X( G% i. R$ i魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表用这个程序作一个测试:
; _! `- s# I! j c# y; n- h2 ]8 t( k魔力私服,最新魔力宝贝私服技术交流int foo (int *p)妖城在线论坛8 P& Z5 x6 C7 E+ Q
{妖城在线论坛( [* ] T3 ^4 ~5 u) ^
return *p;
& V r7 `& P: ~9 M* X9 w魔力私服,最新魔力宝贝私服技术交流}
0 B; s: e" G7 }& a4 g魔力私服,最新魔力宝贝私服技术交流main()
3 X% i& d; C% c" R魔力私服,最新魔力宝贝私服技术交流{魔力私服,最新魔力宝贝私服技术交流* s7 C7 h% u3 H# ` W
foo (0);
: _" n1 a' p! L# j5 `}魔力私服,最新魔力宝贝私服技术交流. p+ `% P# D R2 b5 w
derek@dli: /tmp $ gcc -g a.cbbs.mocwww.com1 E- B6 |6 P! Z+ N/ G* v- h* s
derek@dli: /tmp $ ./a.out魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表2 B, u* W7 \8 _( |6 l
段错误 (core dumped)
" n- J7 N. a) E+ ^3 w魔力私服,最新魔力宝贝私服技术交流derek@dli: /tmp $ gdb ./a.out -c core魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表0 G$ y7 e) ?0 B) R7 j
(这里略去约十行其他信息)
0 H$ i, f; Z7 A; H; K) j! vbbs.mocwww.comCore was generated by `./a.out'.
2 a( |+ {8 {8 l; h! j8 ^魔力私服,最新魔力宝贝私服技术交流Program terminated with signal 11, Segmentation fault.
5 h, h0 a2 p5 y1 P! i4 M—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート#0 0x0804834a in foo (p=0x0) at a.c:3
2 R8 C) {! G0 ^1 G) g) N—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート3 return *p;
* T& c D/ ~- ^ z& E; J/ J—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート如果再输入一条命令 bt,就可以看得清清楚楚错误是在什么时机产生的:
. ?9 N( ~6 Y5 T8 N0 A: i—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート(gdb) bt
, |+ S. \: @5 |# h5 D+ _魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表#0 0x0804834a in foo (p=0x0) at a.c:3魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表8 D q1 C8 r3 y2 l! d) r; ]3 a7 b
#1 0x0804836b in main () at a.c:8妖城在线论坛1 c8 @" @ X$ X. i) G' ?/ V/ d
不能有比这更清楚的错误信息了!如果是在 Windows 下,就老老实实 Trace and Step 吧。
/ c# G5 a* A7 y5 Y魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表1 i; e7 v$ v5 Q3 \7 X# B
百度知道摘的有关段错误的解释
9 a$ l) D1 a0 l& N m3 J魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表参考一下便于理解
3 j$ \' S6 W; |; e, E7 pbbs.mocwww.com至于出错的原因 最好贴更多的信息 上面应该还有其他错误提示才对吧+ O: v5 n& M* ^5 d- x+ A; S! _