0 h, U, I6 ^% x p魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表The problem that no `core' file is created on a segmentation fault; Locate errors in the source with GDB and `core' files
. r( E% j: q4 e4 y% g# R* n妖城在线论坛Linux 程序在遇到段错误(常见的是由非法访问内存引起)的时候会产生 core 文件,如果这个程序包含调试信息(编译的时候加 -g 选项),那么使用 gdb 读取这个 core 文件可以快速定位出错的源代码。原来在某软件公司实习的时候(用 RedHat Enterprise Linux)觉得这样非常方便查错,但我自己用的 Debian GNU/Linux 却默认不生成这个文件。—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート" C( d$ @/ t; x2 a) i* J4 K* B% w
检查以后发现原因是 core 文件最大尺寸(用 ulimit -c 查看)是 0,把它设置成非 0 值就可以了,如:
$ j. z( e! l9 u+ }# ]* q魔力私服,最新魔力宝贝私服技术交流ulimit -c 2048(设置 core 文件最大尺寸为 2048 blocks,1block=512bytes,因此这里设置的其实是 1MiB)妖城在线论坛$ F6 ~) G! e8 P0 @# H
ulimit -c unlimited(不限 core 文件尺寸)—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート# n& c* p. q O
附:用 gdb 根据 core dump 文件定位错误的办法。
( X6 z4 E% _4 A6 u7 v2 H魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表用这个程序作一个测试:
0 j9 J" y" n& ~8 h: q! N5 Z魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表int foo (int *p)魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表$ N% p$ `' n9 ~4 H, W/ u
{
. {" n5 z/ o6 h( h& s L, Yreturn *p;—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート' f6 U; N9 M# g6 U% P. J( i$ c3 K
}
9 s- L y) J/ O. R5 U魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表main()
0 S! k! k; J1 T魔力私服,最新魔力宝贝私服技术交流{
. K( e& j g( Lbbs.mocwww.comfoo (0);% `* c x- _( E3 ?% `+ j) q8 ]& v
}
P4 z6 S7 f' v& X J# O- ebbs.mocwww.comderek@dli: /tmp $ gcc -g a.c妖城在线论坛4 O+ f% B6 D6 U; C' ^1 E
derek@dli: /tmp $ ./a.outbbs.mocwww.com% S3 s8 _: r% u: P" \ d) o. i H
段错误 (core dumped)魔力私服,最新魔力宝贝私服技术交流4 G5 J* s1 s, D5 S% x
derek@dli: /tmp $ gdb ./a.out -c core魔力私服,最新魔力宝贝私服技术交流4 o) Y5 H: E. s, G
(这里略去约十行其他信息)—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート& Y5 S6 a) N m& r
Core was generated by `./a.out'.
8 x! p( f( M! _9 C: e魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表Program terminated with signal 11, Segmentation fault.3 W1 ~. A7 f' F& H( |+ y% h
#0 0x0804834a in foo (p=0x0) at a.c:3—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート2 j- E2 T+ p1 Z2 m
3 return *p;
) N* a; Z1 e! G3 e7 v! j9 d魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表如果再输入一条命令 bt,就可以看得清清楚楚错误是在什么时机产生的:—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート6 j M& L3 N2 ~0 k' n0 }
(gdb) bt
- h7 k6 i2 _8 F: N0 M. q+ J妖城在线论坛#0 0x0804834a in foo (p=0x0) at a.c:3
9 k* K T& v6 _5 c妖城在线论坛#1 0x0804836b in main () at a.c:8
; n$ F+ I3 P0 e7 `% d" i4 Kbbs.mocwww.com不能有比这更清楚的错误信息了!如果是在 Windows 下,就老老实实 Trace and Step 吧。—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート: B9 |5 ?2 z* u) a/ [2 _' Q" L* b
6 X; _/ S) N a v ^0 E; F7 X) }妖城在线论坛百度知道摘的有关段错误的解释
9 G) B. q r6 U/ C参考一下便于理解bbs.mocwww.com9 `) d, @4 P9 h, @! t3 i0 R0 a& D& K
至于出错的原因 最好贴更多的信息 上面应该还有其他错误提示才对吧
5 X% d1 d9 p5 b6 `7 Z魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表