妖城在线论坛+ g" T% v2 a- w3 `
The problem that no `core' file is created on a segmentation fault; Locate errors in the source with GDB and `core' files
0 }6 \5 L2 c8 o2 i0 Kbbs.mocwww.comLinux 程序在遇到段错误(常见的是由非法访问内存引起)的时候会产生 core 文件,如果这个程序包含调试信息(编译的时候加 -g 选项),那么使用 gdb 读取这个 core 文件可以快速定位出错的源代码。原来在某软件公司实习的时候(用 RedHat Enterprise Linux)觉得这样非常方便查错,但我自己用的 Debian GNU/Linux 却默认不生成这个文件。妖城在线论坛7 o+ i8 `3 d5 Q7 g0 p+ j8 E
检查以后发现原因是 core 文件最大尺寸(用 ulimit -c 查看)是 0,把它设置成非 0 值就可以了,如:
# \& ]& j$ `5 i- T- L& V2 }魔力私服,最新魔力宝贝私服技术交流ulimit -c 2048(设置 core 文件最大尺寸为 2048 blocks,1block=512bytes,因此这里设置的其实是 1MiB)
4 B+ w4 b7 C# x/ @3 n6 i) ^0 W魔力私服,最新魔力宝贝私服技术交流ulimit -c unlimited(不限 core 文件尺寸)/ d; A+ Y6 |) F( J) B5 n- [/ {
附:用 gdb 根据 core dump 文件定位错误的办法。
. X2 U- [( m* h% P妖城在线论坛用这个程序作一个测试:% n4 `6 O( f6 }6 P6 D6 C# E
int foo (int *p)魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表% F1 _( ?: P) H, ]' d. k7 u
{
. h( N3 I3 Z/ o) n魔力私服,最新魔力宝贝私服技术交流return *p;
% u S$ O6 R; k% o& }3 R}
" p, l2 w3 {; R1 f$ W—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲートmain()妖城在线论坛, Q, [5 {/ x4 |8 n
{
* F) b4 s0 u% f+ Afoo (0);魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表. }( i. {+ u Q2 x8 u% }
}魔力私服,最新魔力宝贝私服技术交流# }7 W) A; t9 r6 Z# O
derek@dli: /tmp $ gcc -g a.c妖城在线论坛) r/ j9 F' `8 F0 O- u
derek@dli: /tmp $ ./a.outbbs.mocwww.com9 q: O# g% z: L
段错误 (core dumped)
L, {7 ^4 \. B, d( c' g8 D. A魔力私服,最新魔力宝贝私服技术交流derek@dli: /tmp $ gdb ./a.out -c corebbs.mocwww.com: F2 T* ~; h4 x# H* J; J: x
(这里略去约十行其他信息)妖城在线论坛0 Y* J2 @9 c% e% S
Core was generated by `./a.out'.
9 Z3 c* Z- H/ E3 \bbs.mocwww.comProgram terminated with signal 11, Segmentation fault.bbs.mocwww.com* z) Y8 _& \5 S0 c1 V) n
#0 0x0804834a in foo (p=0x0) at a.c:3—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート: J& A. A& x5 g+ ?0 g
3 return *p;妖城在线论坛3 S- j9 K0 I% _. I. H* k
如果再输入一条命令 bt,就可以看得清清楚楚错误是在什么时机产生的:
0 Y8 r% l% d6 l4 k$ ^5 B0 f; C魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表(gdb) bt—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート. I! N* o0 z8 z3 b( x
#0 0x0804834a in foo (p=0x0) at a.c:3
8 E$ n, P# D0 C魔力私服,最新魔力宝贝私服技术交流#1 0x0804836b in main () at a.c:8bbs.mocwww.com6 v h6 U6 W. N, K, m
不能有比这更清楚的错误信息了!如果是在 Windows 下,就老老实实 Trace and Step 吧。
1 D+ Q; c* o' |5 v) q魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表: ?1 V+ R! V3 W( B3 J
百度知道摘的有关段错误的解释
' Y7 ]" \. u$ w# m妖城在线论坛参考一下便于理解魔力私服,最新魔力宝贝私服技术交流7 X+ ]# k- h: v( E
至于出错的原因 最好贴更多的信息 上面应该还有其他错误提示才对吧
, s# {! W" {8 |" P8 r9 l+ V4 |6 G5 M妖城在线论坛