, W+ \$ m6 y( I" P* t' K3 K—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲートThe problem that no `core' file is created on a segmentation fault; Locate errors in the source with GDB and `core' files妖城在线论坛: P I' ~" ^3 h# E
Linux 程序在遇到段错误(常见的是由非法访问内存引起)的时候会产生 core 文件,如果这个程序包含调试信息(编译的时候加 -g 选项),那么使用 gdb 读取这个 core 文件可以快速定位出错的源代码。原来在某软件公司实习的时候(用 RedHat Enterprise Linux)觉得这样非常方便查错,但我自己用的 Debian GNU/Linux 却默认不生成这个文件。bbs.mocwww.com* t- B2 U4 F4 Q: i' c- t
检查以后发现原因是 core 文件最大尺寸(用 ulimit -c 查看)是 0,把它设置成非 0 值就可以了,如:
8 A1 ^ {. j! z% s魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表ulimit -c 2048(设置 core 文件最大尺寸为 2048 blocks,1block=512bytes,因此这里设置的其实是 1MiB)妖城在线论坛( H3 q: n( |" F$ b
ulimit -c unlimited(不限 core 文件尺寸)4 O& d& j& h- E
附:用 gdb 根据 core dump 文件定位错误的办法。
# k+ z) [( ?/ U% ?# l5 Q魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表用这个程序作一个测试:
0 E8 E3 e* \ ^$ T4 Rint foo (int *p)1 \, O J, f, P% o' X, R
{9 x! ]/ r9 v6 ]! Q- ?
return *p;
2 ^ Y1 t$ E, _1 l$ v* v魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表}妖城在线论坛! y* |6 n0 D, G. y7 S o
main()
O+ ?: A( h9 |; G- W5 L—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート{妖城在线论坛) R. O- x8 K" F
foo (0);
' `7 n) H( C8 }- @bbs.mocwww.com}
2 o, b5 G6 ^% v- j8 T% w2 H& P1 g魔力私服,最新魔力宝贝私服技术交流derek@dli: /tmp $ gcc -g a.c
' o; @% \6 q; l9 Q' g8 Oderek@dli: /tmp $ ./a.out—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート# @/ C( ~' D9 w( l8 n! H& d- c
段错误 (core dumped)魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表2 I! m! d' |. Y: ~1 H
derek@dli: /tmp $ gdb ./a.out -c core
$ U7 z7 C+ E# T/ Mbbs.mocwww.com(这里略去约十行其他信息)
9 S2 q2 B2 y" ^9 X' I, `Core was generated by `./a.out'.—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート; t6 L6 J/ ]: E f4 E* A
Program terminated with signal 11, Segmentation fault.
+ R2 a+ J1 p/ P; [#0 0x0804834a in foo (p=0x0) at a.c:3—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート' L2 W7 d" s0 D; I7 s
3 return *p;bbs.mocwww.com& Z" J0 j+ k# N; W
如果再输入一条命令 bt,就可以看得清清楚楚错误是在什么时机产生的:bbs.mocwww.com( q7 M0 _) L1 h3 K! j
(gdb) bt
: D0 p& n: F4 g; K. [魔力私服,最新魔力宝贝私服技术交流#0 0x0804834a in foo (p=0x0) at a.c:3
7 U4 A" C! m9 T5 `, L1 Qbbs.mocwww.com#1 0x0804836b in main () at a.c:8
3 }* e$ W& J9 E+ B4 c& i不能有比这更清楚的错误信息了!如果是在 Windows 下,就老老实实 Trace and Step 吧。
: V* P" f X9 ^# A# G% I+ M—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート8 S# Q, R* T7 y1 I* X2 \/ h( m
百度知道摘的有关段错误的解释
# B# g- v8 @* G: W. _妖城在线论坛参考一下便于理解bbs.mocwww.com( X6 ^1 l3 B/ w. E6 o+ S4 M! w8 x& M
至于出错的原因 最好贴更多的信息 上面应该还有其他错误提示才对吧
2 B: W+ G$ |& X# S7 }0 [7 V妖城在线论坛