bbs.mocwww.com' z7 B* P; P n$ M2 i' g
The problem that no `core' file is created on a segmentation fault; Locate errors in the source with GDB and `core' files
6 k3 k$ H' ]( I9 }; T( F- M+ N3 K魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表Linux 程序在遇到段错误(常见的是由非法访问内存引起)的时候会产生 core 文件,如果这个程序包含调试信息(编译的时候加 -g 选项),那么使用 gdb 读取这个 core 文件可以快速定位出错的源代码。原来在某软件公司实习的时候(用 RedHat Enterprise Linux)觉得这样非常方便查错,但我自己用的 Debian GNU/Linux 却默认不生成这个文件。魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表7 o8 K$ R/ A2 c2 }
检查以后发现原因是 core 文件最大尺寸(用 ulimit -c 查看)是 0,把它设置成非 0 值就可以了,如:魔力私服,最新魔力宝贝私服技术交流. q) D2 R/ z2 _
ulimit -c 2048(设置 core 文件最大尺寸为 2048 blocks,1block=512bytes,因此这里设置的其实是 1MiB)
+ E1 m9 t& W. Z8 b6 m, r& @ i魔力私服,最新魔力宝贝私服技术交流ulimit -c unlimited(不限 core 文件尺寸)魔力私服,最新魔力宝贝私服技术交流; q4 z( K) f6 Z- U" ]0 x) e2 v# k; [
附:用 gdb 根据 core dump 文件定位错误的办法。bbs.mocwww.com8 _5 E# Y! @3 d- Z5 z
用这个程序作一个测试:
& s; `( S L7 L/ w3 y) g* t魔力私服,最新魔力宝贝私服技术交流int foo (int *p)
3 y" M9 G2 o. W( B. [8 q0 P9 y魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表{bbs.mocwww.com; Y- t0 }0 \5 K. C7 c
return *p;
1 w+ A" Z/ v1 E/ r6 ]魔力私服,最新魔力宝贝私服技术交流}
+ B; ]$ ^6 [# l. R) T魔力私服,最新魔力宝贝私服技术交流main()7 R8 j5 i5 s1 f% U* J
{
, t' O: r3 |6 l- O0 o3 [魔力私服,最新魔力宝贝私服技术交流foo (0);
! B8 b. s5 u. q/ i" n魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表}魔力私服,最新魔力宝贝私服技术交流; Z. }" _/ M4 l. k, Y5 c* o
derek@dli: /tmp $ gcc -g a.c' f( @% z& o1 v I$ N. v
derek@dli: /tmp $ ./a.out
7 `6 E& V- Z9 mbbs.mocwww.com段错误 (core dumped)妖城在线论坛6 k0 @" H9 Q: g6 ~/ B/ x
derek@dli: /tmp $ gdb ./a.out -c core
# u- t1 O: F- C) v* d(这里略去约十行其他信息)
( V% C' f; f8 ~; z: ?( h" r6 I魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表Core was generated by `./a.out'.
$ E- w( I% y g9 F" P5 ]Program terminated with signal 11, Segmentation fault.
( t& c% Y0 n& ^+ \bbs.mocwww.com#0 0x0804834a in foo (p=0x0) at a.c:3魔力私服,最新魔力宝贝私服技术交流& H( \# k% L& n* ]2 o4 c
3 return *p;
( a+ U( S+ v) h6 n5 {—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート如果再输入一条命令 bt,就可以看得清清楚楚错误是在什么时机产生的:bbs.mocwww.com3 ]1 {, p5 C7 z4 b- _7 \/ |0 I
(gdb) bt) v# o. \5 o1 g8 J
#0 0x0804834a in foo (p=0x0) at a.c:3
+ Z9 d0 J5 }) q! k妖城在线论坛#1 0x0804836b in main () at a.c:8—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート" `1 ?2 A2 f/ T6 f% F2 [
不能有比这更清楚的错误信息了!如果是在 Windows 下,就老老实实 Trace and Step 吧。
1 C" V: v6 J6 k: @ Z$ @ {bbs.mocwww.com妖城在线论坛- G8 J5 K& a6 Q) o( L
百度知道摘的有关段错误的解释
& Q! Q. z5 j$ R; ]$ @6 v+ dbbs.mocwww.com参考一下便于理解魔力私服,最新魔力宝贝私服技术交流8 X; _0 [6 r* }9 L
至于出错的原因 最好贴更多的信息 上面应该还有其他错误提示才对吧
( M* z' Y. n! _2 X5 W' o—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート