7 Q& e0 R4 F" P" N3 I
The problem that no `core' file is created on a segmentation fault; Locate errors in the source with GDB and `core' files魔力私服,最新魔力宝贝私服技术交流6 B5 N5 }+ I3 @. d, k
Linux 程序在遇到段错误(常见的是由非法访问内存引起)的时候会产生 core 文件,如果这个程序包含调试信息(编译的时候加 -g 选项),那么使用 gdb 读取这个 core 文件可以快速定位出错的源代码。原来在某软件公司实习的时候(用 RedHat Enterprise Linux)觉得这样非常方便查错,但我自己用的 Debian GNU/Linux 却默认不生成这个文件。3 Q3 c6 o0 M! o' m3 S- h' X
检查以后发现原因是 core 文件最大尺寸(用 ulimit -c 查看)是 0,把它设置成非 0 值就可以了,如:
3 g" b) p# M* I, M7 W. v, abbs.mocwww.comulimit -c 2048(设置 core 文件最大尺寸为 2048 blocks,1block=512bytes,因此这里设置的其实是 1MiB)bbs.mocwww.com( ^; i p8 T' g8 Z$ j+ o3 X9 U
ulimit -c unlimited(不限 core 文件尺寸)
' T* f) h7 u6 w. a: Z1 M魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表附:用 gdb 根据 core dump 文件定位错误的办法。7 n- V% J& i6 A2 ~: W* g
用这个程序作一个测试:魔力私服,最新魔力宝贝私服技术交流; g* S' w I/ b5 h, p! x
int foo (int *p)' k+ {2 V- |, D Q; b
{
7 x" W; b* `" [+ Y4 H魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表return *p;魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表) K: i1 |5 e2 [* y3 ?0 y. i
}
! T! P+ m* z+ v0 _) m—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲートmain()
! t4 | ?9 l5 ~# C6 t{—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート1 p' q' _* ~, Q8 d# d
foo (0);
1 W5 L% s1 N0 D- p$ _魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表}
" l, u! t1 v2 q魔力私服,最新魔力宝贝私服技术交流derek@dli: /tmp $ gcc -g a.c
/ G0 N& k+ q5 t% _; abbs.mocwww.comderek@dli: /tmp $ ./a.out/ I" u" h0 d6 L$ S( R
段错误 (core dumped)
* u0 R \8 S V4 ^derek@dli: /tmp $ gdb ./a.out -c core
+ y+ e1 R2 Z+ M: L! ~妖城在线论坛(这里略去约十行其他信息)魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表) V5 I) k9 h7 `: h# l
Core was generated by `./a.out'.
; I, Q$ G u: B$ [+ j7 ebbs.mocwww.comProgram terminated with signal 11, Segmentation fault.
* ~8 B: y3 E6 R7 W3 z$ a妖城在线论坛#0 0x0804834a in foo (p=0x0) at a.c:3
% Q- U$ p7 W$ U, b; B—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート3 return *p;bbs.mocwww.com+ a! Q7 p: e9 ?! |" A
如果再输入一条命令 bt,就可以看得清清楚楚错误是在什么时机产生的:
+ H" d% ~2 I- x# \魔力私服,最新魔力宝贝私服技术交流(gdb) bt
+ m. x5 T# N6 ]# r3 m" G- g; m—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート#0 0x0804834a in foo (p=0x0) at a.c:3魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表) J9 b% }; K- Q* p9 i
#1 0x0804836b in main () at a.c:8
# ~ A- M5 W0 F4 q- z魔力私服,最新魔力宝贝私服技术交流不能有比这更清楚的错误信息了!如果是在 Windows 下,就老老实实 Trace and Step 吧。—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート2 Y; g8 r$ s! R) g8 n
1 ~- `. s% C; Q3 k; |+ H j妖城在线论坛百度知道摘的有关段错误的解释魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表1 B, @# w; U5 f# [8 }" O
参考一下便于理解妖城在线论坛: ^ g6 ~+ O9 p$ H5 L2 ?* A7 O
至于出错的原因 最好贴更多的信息 上面应该还有其他错误提示才对吧bbs.mocwww.com6 q9 B1 }7 K; ?" [3 c