—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート" M5 E6 |4 Y0 K8 C- W4 J. B& L
The problem that no `core' file is created on a segmentation fault; Locate errors in the source with GDB and `core' files妖城在线论坛4 U" m, H$ n9 U z% c, T# ~/ F
Linux 程序在遇到段错误(常见的是由非法访问内存引起)的时候会产生 core 文件,如果这个程序包含调试信息(编译的时候加 -g 选项),那么使用 gdb 读取这个 core 文件可以快速定位出错的源代码。原来在某软件公司实习的时候(用 RedHat Enterprise Linux)觉得这样非常方便查错,但我自己用的 Debian GNU/Linux 却默认不生成这个文件。妖城在线论坛: X1 i r4 m/ j/ k: R
检查以后发现原因是 core 文件最大尺寸(用 ulimit -c 查看)是 0,把它设置成非 0 值就可以了,如:
4 v' @- B3 w! E' S. K4 R魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表ulimit -c 2048(设置 core 文件最大尺寸为 2048 blocks,1block=512bytes,因此这里设置的其实是 1MiB)
& F( j8 S! R, W+ n( N7 w/ Bulimit -c unlimited(不限 core 文件尺寸)bbs.mocwww.com* x T( g1 T4 D* h1 [
附:用 gdb 根据 core dump 文件定位错误的办法。魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表, u4 z9 r; f6 ?/ |( I
用这个程序作一个测试:
- D. D9 ^0 A) ^( r( R魔力私服,最新魔力宝贝私服技术交流int foo (int *p)
8 y. Q; ^: Y, J% A) y! j妖城在线论坛{$ I9 r" D. r& X4 D6 Z' Y" c: B
return *p;
E4 S/ G- C4 ` i( B魔力私服,最新魔力宝贝私服技术交流}
7 ?" u+ \0 V {* X2 }' r* @ b魔力私服,最新魔力宝贝私服技术交流main()
7 t) [$ w! K7 P# gbbs.mocwww.com{
4 x% v$ q- Z- @& Z. S/ Q, Z% A0 X魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表foo (0);bbs.mocwww.com. x& V- O# V# A4 j. T" N
}—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート+ I5 J; \( I: X b7 D
derek@dli: /tmp $ gcc -g a.c—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート) y$ z6 w. e8 ]; t1 z8 i% S
derek@dli: /tmp $ ./a.out0 [6 f" ]: s$ j2 [4 H% E
段错误 (core dumped)
( y& F) G. ]7 P* q" ?' D6 s4 R—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲートderek@dli: /tmp $ gdb ./a.out -c core
' `% v# R; I7 Z' a—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート(这里略去约十行其他信息)魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表. Y0 b6 s( p) M+ u3 C1 d
Core was generated by `./a.out'.
) m' C8 g' M; E# Z" ~% p9 I& xProgram terminated with signal 11, Segmentation fault.魔力私服,最新魔力宝贝私服技术交流8 M- z* y4 t' X* D4 _, Y+ I
#0 0x0804834a in foo (p=0x0) at a.c:3—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート! F3 R$ D, h$ |+ C2 p5 Z
3 return *p;
3 Y+ ]! y7 C5 w; _& H% E4 T魔力私服,最新魔力宝贝私服技术交流如果再输入一条命令 bt,就可以看得清清楚楚错误是在什么时机产生的:魔力私服,最新魔力宝贝私服技术交流9 S4 m7 n! T V
(gdb) bt魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表 U+ ]) q3 A! ]/ v
#0 0x0804834a in foo (p=0x0) at a.c:3—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート+ M8 C7 d8 B" `9 O( C! g
#1 0x0804836b in main () at a.c:8
2 ~5 s \2 e' r8 q: i2 U4 B魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表不能有比这更清楚的错误信息了!如果是在 Windows 下,就老老实实 Trace and Step 吧。
5 ~- ?8 Q7 ~. z, n3 ?6 j妖城在线论坛
8 p7 H) w$ @. n% x—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート百度知道摘的有关段错误的解释妖城在线论坛& C6 F' f0 C8 p0 }8 Z0 b( ~
参考一下便于理解bbs.mocwww.com: L/ B# N% f5 C+ l
至于出错的原因 最好贴更多的信息 上面应该还有其他错误提示才对吧
. s* r9 B6 ^+ p! G. M" g8 m! T—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート