魔力私服,最新魔力宝贝私服技术交流 v8 N' {5 [ H8 Y. P# e7 v+ ~
The problem that no `core' file is created on a segmentation fault; Locate errors in the source with GDB and `core' filesbbs.mocwww.com+ E, z9 \6 ?/ O. b
Linux 程序在遇到段错误(常见的是由非法访问内存引起)的时候会产生 core 文件,如果这个程序包含调试信息(编译的时候加 -g 选项),那么使用 gdb 读取这个 core 文件可以快速定位出错的源代码。原来在某软件公司实习的时候(用 RedHat Enterprise Linux)觉得这样非常方便查错,但我自己用的 Debian GNU/Linux 却默认不生成这个文件。
. o& ^ R1 `7 a. sbbs.mocwww.com检查以后发现原因是 core 文件最大尺寸(用 ulimit -c 查看)是 0,把它设置成非 0 值就可以了,如:妖城在线论坛9 x9 o, ]* N; r6 u6 p7 K, @
ulimit -c 2048(设置 core 文件最大尺寸为 2048 blocks,1block=512bytes,因此这里设置的其实是 1MiB)
& J0 A4 s1 m% S9 _8 v魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表ulimit -c unlimited(不限 core 文件尺寸)—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート: T4 y* P+ l& `7 T
附:用 gdb 根据 core dump 文件定位错误的办法。
& d, c. s1 C% q6 _, `; r: r妖城在线论坛用这个程序作一个测试:
- ]# Q7 O, s) t# U6 uint foo (int *p)魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表4 u4 `2 S; L- l ], W w& n
{bbs.mocwww.com) c+ ]/ u# V0 \
return *p;
, M& w7 A' ~! Z7 |9 w: A7 g0 m魔力私服,最新魔力宝贝私服技术交流}5 v& s' v$ r/ ~" Y: b
main()
8 `* y5 P. ?+ C3 xbbs.mocwww.com{bbs.mocwww.com( d5 k/ f6 P! `, c
foo (0);
- q8 B( \0 t& b6 t) [—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート}bbs.mocwww.com8 q+ G1 t3 O) Q% H9 k. ?7 |8 S# K
derek@dli: /tmp $ gcc -g a.c妖城在线论坛9 V0 a: c3 M# x. K7 J1 y
derek@dli: /tmp $ ./a.out
( a4 F$ M! U: L, l: s0 O. V$ G魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表段错误 (core dumped)
/ v+ ^' `8 k5 L+ j6 J3 A* t7 o魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表derek@dli: /tmp $ gdb ./a.out -c core妖城在线论坛) u( y" q2 c% D& s( j
(这里略去约十行其他信息)妖城在线论坛% p9 I) I& C7 N- K0 o1 G: A* F
Core was generated by `./a.out'.魔力私服,最新魔力宝贝私服技术交流" `$ I) }& |% R9 j
Program terminated with signal 11, Segmentation fault.
1 s) n* ~; ~0 f( @—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート#0 0x0804834a in foo (p=0x0) at a.c:3魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表7 }3 m; Y7 V; P& M9 R
3 return *p;
9 y% z1 j8 `( ?$ h0 l1 }5 C妖城在线论坛如果再输入一条命令 bt,就可以看得清清楚楚错误是在什么时机产生的:
& a" z& f& X. ~: y, {妖城在线论坛(gdb) bt
0 }3 I6 p6 U; x" y/ d1 A' d! T#0 0x0804834a in foo (p=0x0) at a.c:3
3 U% @( j3 K, c( u! B7 ]+ v: R魔力私服,最新魔力宝贝私服技术交流#1 0x0804836b in main () at a.c:8
5 j2 b0 _6 |* z4 abbs.mocwww.com不能有比这更清楚的错误信息了!如果是在 Windows 下,就老老实实 Trace and Step 吧。魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表2 s% n8 r1 _' s% n3 p
妖城在线论坛/ a+ ~' ] @: e5 F/ q8 C+ S
百度知道摘的有关段错误的解释
) x; w1 A# `( e8 m3 Z @参考一下便于理解9 |8 M$ |$ w* T5 N% x/ M8 {* X
至于出错的原因 最好贴更多的信息 上面应该还有其他错误提示才对吧妖城在线论坛* X3 e4 Y1 J8 ~( h