4 @: R1 I* _* d6 V1 \* G+ M妖城在线论坛The problem that no `core' file is created on a segmentation fault; Locate errors in the source with GDB and `core' files
1 R: ^) ^+ T' M8 ]( N: B: O妖城在线论坛Linux 程序在遇到段错误(常见的是由非法访问内存引起)的时候会产生 core 文件,如果这个程序包含调试信息(编译的时候加 -g 选项),那么使用 gdb 读取这个 core 文件可以快速定位出错的源代码。原来在某软件公司实习的时候(用 RedHat Enterprise Linux)觉得这样非常方便查错,但我自己用的 Debian GNU/Linux 却默认不生成这个文件。
- Q5 N3 h% K, \" K: P: S! \' a妖城在线论坛检查以后发现原因是 core 文件最大尺寸(用 ulimit -c 查看)是 0,把它设置成非 0 值就可以了,如:魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表4 k& M+ t- H; o$ W) N$ Q1 N
ulimit -c 2048(设置 core 文件最大尺寸为 2048 blocks,1block=512bytes,因此这里设置的其实是 1MiB)2 _) w& V( O0 F, B- H: h
ulimit -c unlimited(不限 core 文件尺寸)
& e) }& w$ L5 G1 Zbbs.mocwww.com附:用 gdb 根据 core dump 文件定位错误的办法。
" |" U( M% ^0 L7 u7 L魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表用这个程序作一个测试:
Y) H# N% E5 y2 c7 g9 X! Hint foo (int *p)
0 i) g& ~0 v1 q! ^+ W Z% o( P' R魔力私服,最新魔力宝贝私服技术交流{—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート1 |* T+ {0 h1 Z! W0 Z/ m
return *p;bbs.mocwww.com0 s8 s) R8 H2 y. T
}
! u+ a$ Q5 z0 u3 Q2 r+ B% [, ~bbs.mocwww.commain()妖城在线论坛/ Z2 s+ `) o- J
{妖城在线论坛! l4 v4 I/ |+ |* h) x5 J* v4 f
foo (0);魔力私服,最新魔力宝贝私服技术交流/ {2 V* W+ M# k& I
}bbs.mocwww.com; v6 P5 N, |; e3 z& t: C- {
derek@dli: /tmp $ gcc -g a.c妖城在线论坛( a# E H( e, {6 ^
derek@dli: /tmp $ ./a.out
4 s) o+ k" f0 d1 [, r魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表段错误 (core dumped)
/ U. O' }& T( \' M$ m- H4 f妖城在线论坛derek@dli: /tmp $ gdb ./a.out -c core
k0 a0 C$ g. _6 [bbs.mocwww.com(这里略去约十行其他信息)
9 f6 Q5 [& L, {+ t: m3 l—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲートCore was generated by `./a.out'.
: h% i8 W4 u8 Y# ?. O2 e$ l& Pbbs.mocwww.comProgram terminated with signal 11, Segmentation fault.魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表" K6 H' t G4 Y, {! C S
#0 0x0804834a in foo (p=0x0) at a.c:3魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表, `: X0 A; ]8 `+ \
3 return *p;
V. Z x, m Z+ w& l, Y6 c- N7 Y8 |魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表如果再输入一条命令 bt,就可以看得清清楚楚错误是在什么时机产生的:
! y' ^1 O* \9 f& G1 o, G3 o魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表(gdb) bt
6 V+ Y7 ?7 x' _! H8 }* g魔力私服,最新魔力宝贝私服技术交流#0 0x0804834a in foo (p=0x0) at a.c:3
8 P$ m9 T0 k$ z! r魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表#1 0x0804836b in main () at a.c:8
5 t" g" `+ G( f, s1 z2 ^- M# r5 pbbs.mocwww.com不能有比这更清楚的错误信息了!如果是在 Windows 下,就老老实实 Trace and Step 吧。魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表: l8 m3 O+ C, I2 X/ D
6 U; c0 _! m5 Q- C% g! }1 K妖城在线论坛百度知道摘的有关段错误的解释魔力私服,最新魔力宝贝私服技术交流' t/ u+ W0 v) \ D3 F4 ~/ F
参考一下便于理解bbs.mocwww.com, Y" i a% ~( P9 d* U
至于出错的原因 最好贴更多的信息 上面应该还有其他错误提示才对吧
, _3 X8 k: k4 m' v* Abbs.mocwww.com