魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表9 x( o8 M/ i0 u b! h8 d7 s9 {
The problem that no `core' file is created on a segmentation fault; Locate errors in the source with GDB and `core' filesbbs.mocwww.com0 R& e- Q( S% g
Linux 程序在遇到段错误(常见的是由非法访问内存引起)的时候会产生 core 文件,如果这个程序包含调试信息(编译的时候加 -g 选项),那么使用 gdb 读取这个 core 文件可以快速定位出错的源代码。原来在某软件公司实习的时候(用 RedHat Enterprise Linux)觉得这样非常方便查错,但我自己用的 Debian GNU/Linux 却默认不生成这个文件。bbs.mocwww.com, w$ y3 [ A( x o, w7 d: X
检查以后发现原因是 core 文件最大尺寸(用 ulimit -c 查看)是 0,把它设置成非 0 值就可以了,如:
. O1 @+ t( V3 n1 Q, H- j8 ~ulimit -c 2048(设置 core 文件最大尺寸为 2048 blocks,1block=512bytes,因此这里设置的其实是 1MiB)
5 F* J& A+ [- V5 Q* x/ s% S0 E6 \' `魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表ulimit -c unlimited(不限 core 文件尺寸)
) q) n! k: f+ O b9 i—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート附:用 gdb 根据 core dump 文件定位错误的办法。- M$ H! m a' o
用这个程序作一个测试:bbs.mocwww.com# q! L0 d: i( ^0 D$ K. C3 n j
int foo (int *p)
) b- F6 O& A& r; G魔力私服,最新魔力宝贝私服技术交流{—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート: _8 `: A2 i! u; X
return *p;
; o# G; W9 S0 U" V9 W0 S}
; K/ K- Q0 q( I q( v妖城在线论坛main()
( J9 ?' r/ t, G* h: J: Q妖城在线论坛{—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート1 C2 m/ h) G; H: Q
foo (0);) h e- M; U: A' z! L3 U- k
}
`) s9 ]3 S6 Y—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲートderek@dli: /tmp $ gcc -g a.c
8 H' x8 }) o' H' H. v妖城在线论坛derek@dli: /tmp $ ./a.out
& w" E9 H; z. w6 U9 ]+ }5 ?魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表段错误 (core dumped)bbs.mocwww.com5 q2 B3 `- ?* H ~: j6 v2 R
derek@dli: /tmp $ gdb ./a.out -c corebbs.mocwww.com. g F) L/ e3 ? C5 ^
(这里略去约十行其他信息)3 a. ]1 H( ]/ V# f- w) D
Core was generated by `./a.out'.
B6 b( |, L5 D0 W1 x妖城在线论坛Program terminated with signal 11, Segmentation fault.bbs.mocwww.com* E) W/ a+ t( E1 U- S6 V/ Q3 K
#0 0x0804834a in foo (p=0x0) at a.c:3
; {# O% \4 I7 v' a4 S0 F7 ]* X魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表3 return *p;
( v: \( B z$ y, @9 {7 j# Y! O& y, P# Q魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表如果再输入一条命令 bt,就可以看得清清楚楚错误是在什么时机产生的:魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表- g3 O) `& O- A# y; e/ {* _
(gdb) bt魔力私服,最新魔力宝贝私服技术交流3 b$ [( [* X$ b8 X8 q
#0 0x0804834a in foo (p=0x0) at a.c:3魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表/ A1 [9 }9 S, x! C$ H' w1 }) ?- B" `
#1 0x0804836b in main () at a.c:8bbs.mocwww.com5 d2 Y5 _4 m8 C1 _
不能有比这更清楚的错误信息了!如果是在 Windows 下,就老老实实 Trace and Step 吧。魔力私服,最新魔力宝贝私服技术交流# S. g# K# h5 v9 r, q
魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表7 v2 M! X# O/ ~
百度知道摘的有关段错误的解释bbs.mocwww.com( k. ?# M1 J3 h. @/ Q- h4 I3 P
参考一下便于理解—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート( k6 |6 p. G2 ]$ T. K$ G
至于出错的原因 最好贴更多的信息 上面应该还有其他错误提示才对吧
; U. ^: U: @' \% n( C. s3 w—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート