9 v+ h* Z8 g/ }8 c: e6 m魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表The problem that no `core' file is created on a segmentation fault; Locate errors in the source with GDB and `core' files
" ^' Z* l- Z! ^& ^2 L# E/ _魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表Linux 程序在遇到段错误(常见的是由非法访问内存引起)的时候会产生 core 文件,如果这个程序包含调试信息(编译的时候加 -g 选项),那么使用 gdb 读取这个 core 文件可以快速定位出错的源代码。原来在某软件公司实习的时候(用 RedHat Enterprise Linux)觉得这样非常方便查错,但我自己用的 Debian GNU/Linux 却默认不生成这个文件。
1 ]1 A( c, h" ^9 {bbs.mocwww.com检查以后发现原因是 core 文件最大尺寸(用 ulimit -c 查看)是 0,把它设置成非 0 值就可以了,如:魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表/ z6 h6 B" M9 u2 ]
ulimit -c 2048(设置 core 文件最大尺寸为 2048 blocks,1block=512bytes,因此这里设置的其实是 1MiB)妖城在线论坛- w1 P! `5 p2 M" @
ulimit -c unlimited(不限 core 文件尺寸)
8 \! v$ A& l& L9 X, cbbs.mocwww.com附:用 gdb 根据 core dump 文件定位错误的办法。
0 p o( e; V1 f+ m1 u妖城在线论坛用这个程序作一个测试:bbs.mocwww.com& e8 @' D* E# x) T" K: \5 Z
int foo (int *p)
& F& S, M& t# O魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表{bbs.mocwww.com$ z" U3 i3 k6 p9 S2 ~/ p
return *p;
+ I V1 D) o. n7 K7 D}
+ [. @' J' f1 B9 h( f5 u8 Zbbs.mocwww.commain()
' t- T+ @( r; V% l( }( T$ Q魔力私服,最新魔力宝贝私服技术交流{
- ?: t( O( Q; X( d+ t+ ]妖城在线论坛foo (0);bbs.mocwww.com7 v) t$ ^; L- U0 c# F8 u; ?: A* V
}
5 L E! W& S% ~; C6 Uderek@dli: /tmp $ gcc -g a.c魔力私服,最新魔力宝贝私服技术交流) B2 n7 x! u- V: U, v8 L
derek@dli: /tmp $ ./a.out魔力私服,最新魔力宝贝私服技术交流6 ~3 A- p8 a( ], p2 i, ^
段错误 (core dumped)魔力私服,最新魔力宝贝私服技术交流: K; V- j2 d& p7 r) {5 `( s& m
derek@dli: /tmp $ gdb ./a.out -c core—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート8 N5 m2 _0 l; N2 X9 D6 w
(这里略去约十行其他信息)
, z9 V# y4 j; x ], {魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表Core was generated by `./a.out'.魔力私服,最新魔力宝贝私服技术交流6 U) Q; m5 b9 ~" s
Program terminated with signal 11, Segmentation fault.—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート* ~, Q: Z, o. ?0 Y
#0 0x0804834a in foo (p=0x0) at a.c:3
- `1 s' y f9 R; _/ @—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート3 return *p;魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表; H( `& D) N7 _" y
如果再输入一条命令 bt,就可以看得清清楚楚错误是在什么时机产生的:魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表+ J3 N3 T& W* k9 f8 L { y
(gdb) bt魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表( K4 E) n$ s# B3 {! M9 w8 m8 z
#0 0x0804834a in foo (p=0x0) at a.c:3妖城在线论坛% i+ x$ z( [7 r2 ?1 b4 p2 o
#1 0x0804836b in main () at a.c:8
; H) g" ?+ {: m8 o$ g, f, m不能有比这更清楚的错误信息了!如果是在 Windows 下,就老老实实 Trace and Step 吧。
v: }5 P& O- a1 E; m" H B4 Kbbs.mocwww.com
- P6 Z- f4 U& s# P9 t魔力私服,最新魔力宝贝私服技术交流百度知道摘的有关段错误的解释—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート, f7 ]7 C4 o) b
参考一下便于理解, O9 \% a+ t/ s& U) ^; j5 i
至于出错的原因 最好贴更多的信息 上面应该还有其他错误提示才对吧妖城在线论坛! K- U1 C, |( d