6 Y: t! J7 _; U魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表The problem that no `core' file is created on a segmentation fault; Locate errors in the source with GDB and `core' files妖城在线论坛* s5 ~. T; w+ v+ Q9 X% C
Linux 程序在遇到段错误(常见的是由非法访问内存引起)的时候会产生 core 文件,如果这个程序包含调试信息(编译的时候加 -g 选项),那么使用 gdb 读取这个 core 文件可以快速定位出错的源代码。原来在某软件公司实习的时候(用 RedHat Enterprise Linux)觉得这样非常方便查错,但我自己用的 Debian GNU/Linux 却默认不生成这个文件。魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表8 y( S, M1 G# F; B( A9 [) J
检查以后发现原因是 core 文件最大尺寸(用 ulimit -c 查看)是 0,把它设置成非 0 值就可以了,如:
7 w- T7 n* ]8 h& Y& obbs.mocwww.comulimit -c 2048(设置 core 文件最大尺寸为 2048 blocks,1block=512bytes,因此这里设置的其实是 1MiB)—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート2 B: ]* M2 ~7 y# y5 ]9 G
ulimit -c unlimited(不限 core 文件尺寸)
9 F) O, I' b2 T# L$ `! I5 Q—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート附:用 gdb 根据 core dump 文件定位错误的办法。
1 o1 \6 p, h7 y, h5 z3 m用这个程序作一个测试:8 F7 Y( _. O3 j* _1 U1 M
int foo (int *p)魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表- w, H: S; k' C; U# r
{
, r! q! i: X# o* \4 Q魔力私服,最新魔力宝贝私服技术交流return *p;
* }' o4 ] z. Q- R! G% j. z$ [妖城在线论坛}
, F! [& w8 O4 g+ r! c! Fmain()bbs.mocwww.com- o) I, g9 x& D" y" p, B$ o5 U
{魔力私服,最新魔力宝贝私服技术交流$ ~/ H& ] e- D' S
foo (0);魔力私服,最新魔力宝贝私服技术交流. h- ^2 n- L6 K3 g
}
8 S+ |7 g% e* B0 X% a& \/ Ebbs.mocwww.comderek@dli: /tmp $ gcc -g a.c—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート8 ~% w# \7 W$ O3 e
derek@dli: /tmp $ ./a.out
, Z" x; a" f$ R M魔力私服,最新魔力宝贝私服技术交流段错误 (core dumped)
/ `: d& M+ p3 e% g0 c—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲートderek@dli: /tmp $ gdb ./a.out -c core魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表$ J3 C, r9 N9 F
(这里略去约十行其他信息)
: f* A) C; I4 Y0 @8 ^魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表Core was generated by `./a.out'.妖城在线论坛, ~& U8 A) d' o3 {1 F
Program terminated with signal 11, Segmentation fault.魔力私服,最新魔力宝贝私服技术交流5 f U! [, R/ t$ `1 `# R y
#0 0x0804834a in foo (p=0x0) at a.c:3—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート' O/ G4 P+ C6 c" s$ _
3 return *p;魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表1 |% f3 H! y$ F+ r4 N5 L8 Q
如果再输入一条命令 bt,就可以看得清清楚楚错误是在什么时机产生的:—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート8 D( `- J. f" K; [7 s
(gdb) bt9 ?0 u/ |$ b; T! G5 J9 |
#0 0x0804834a in foo (p=0x0) at a.c:3
7 M* _9 P- {0 [% f8 x: J$ \#1 0x0804836b in main () at a.c:8; Y: j/ R$ Q) d$ K
不能有比这更清楚的错误信息了!如果是在 Windows 下,就老老实实 Trace and Step 吧。
& U" E. s* b& A8 Xbbs.mocwww.combbs.mocwww.com% @2 O% Y4 k: K0 X) W3 m5 [: q
百度知道摘的有关段错误的解释妖城在线论坛7 U5 h' \: P( K% a
参考一下便于理解
8 i8 j" b3 u( e4 I, N4 ^( T" j魔力私服,最新魔力宝贝私服技术交流至于出错的原因 最好贴更多的信息 上面应该还有其他错误提示才对吧bbs.mocwww.com* S- \8 Q* [; p* l6 D