2 D- \+ f2 L) ]% i9 N妖城在线论坛The problem that no `core' file is created on a segmentation fault; Locate errors in the source with GDB and `core' files
8 S" @$ @3 D/ } Q魔力私服,最新魔力宝贝私服技术交流Linux 程序在遇到段错误(常见的是由非法访问内存引起)的时候会产生 core 文件,如果这个程序包含调试信息(编译的时候加 -g 选项),那么使用 gdb 读取这个 core 文件可以快速定位出错的源代码。原来在某软件公司实习的时候(用 RedHat Enterprise Linux)觉得这样非常方便查错,但我自己用的 Debian GNU/Linux 却默认不生成这个文件。
4 v* g/ z1 w3 q" p* x& q+ c0 \( Q—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート检查以后发现原因是 core 文件最大尺寸(用 ulimit -c 查看)是 0,把它设置成非 0 值就可以了,如:魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表4 g8 t' h1 c( h M
ulimit -c 2048(设置 core 文件最大尺寸为 2048 blocks,1block=512bytes,因此这里设置的其实是 1MiB)bbs.mocwww.com* W" }+ N/ X9 F" d; T* \1 w7 y6 L
ulimit -c unlimited(不限 core 文件尺寸)
2 g7 ?4 n' \( f2 F S附:用 gdb 根据 core dump 文件定位错误的办法。bbs.mocwww.com( M) N2 B2 U" F" M7 E
用这个程序作一个测试:
# y$ h* W( z2 {1 F5 m妖城在线论坛int foo (int *p)
5 D% {5 Z9 ^2 }0 g$ Y* _7 Q7 o—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート{+ a9 @, ?" b7 ?* O( e4 m
return *p;
6 U j# w$ p$ n. N9 [—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート}
' t; h3 n- i, ^5 ]bbs.mocwww.commain()
4 v) c' q3 M1 q9 l—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート{bbs.mocwww.com# b$ T8 ?5 K, Z0 A3 e! j z0 \
foo (0);
% N( }2 [% p5 [2 J0 F妖城在线论坛}妖城在线论坛9 a$ p* K2 b, N
derek@dli: /tmp $ gcc -g a.c
, Y+ @+ u0 z4 i" n2 q: H* U妖城在线论坛derek@dli: /tmp $ ./a.out
. |) I3 p* t9 x# h a- B; [bbs.mocwww.com段错误 (core dumped)魔力私服,最新魔力宝贝私服技术交流! Z7 S' V6 o, w O) a4 Q
derek@dli: /tmp $ gdb ./a.out -c core
# J! o C2 ^7 N! K% N/ D8 J魔力私服,最新魔力宝贝私服技术交流(这里略去约十行其他信息)
% u9 x1 e( Y/ j3 W# Y4 K魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表Core was generated by `./a.out'.魔力私服,最新魔力宝贝私服技术交流* N+ e7 T! Z4 Y5 j7 F1 H W! i
Program terminated with signal 11, Segmentation fault.魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表3 j- i; s+ U( V$ ?
#0 0x0804834a in foo (p=0x0) at a.c:3
9 X0 t" ?$ A7 m, e—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート3 return *p;
1 J% D! C! D' `% `) o% h—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート如果再输入一条命令 bt,就可以看得清清楚楚错误是在什么时机产生的:
5 q7 _8 ~3 Q5 w6 C5 F/ R- ^; c妖城在线论坛(gdb) bt魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表/ v. O1 ~) A7 K5 B
#0 0x0804834a in foo (p=0x0) at a.c:3魔力私服,最新魔力宝贝私服技术交流* `4 d' O, |6 n2 }3 Z! W
#1 0x0804836b in main () at a.c:8
' b( o. \( E8 N! ~/ I1 S妖城在线论坛不能有比这更清楚的错误信息了!如果是在 Windows 下,就老老实实 Trace and Step 吧。
5 ]3 T1 T5 d$ u$ S5 Q6 Y. p—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート& q+ }, M! k9 J, i$ Q7 N) j" s+ B
百度知道摘的有关段错误的解释
( e6 h5 j4 m' Z. N! H& ^魔力私服,最新魔力宝贝私服技术交流参考一下便于理解妖城在线论坛 D5 M- J& @! g8 _) D; ]6 M
至于出错的原因 最好贴更多的信息 上面应该还有其他错误提示才对吧
* \( Z0 Q7 r- U" a+ R2 ?: |2 n+ s3 r