bbs.mocwww.com1 _' t1 d* E% f( o
The problem that no `core' file is created on a segmentation fault; Locate errors in the source with GDB and `core' files
% x0 u0 p- Z( }1 Sbbs.mocwww.comLinux 程序在遇到段错误(常见的是由非法访问内存引起)的时候会产生 core 文件,如果这个程序包含调试信息(编译的时候加 -g 选项),那么使用 gdb 读取这个 core 文件可以快速定位出错的源代码。原来在某软件公司实习的时候(用 RedHat Enterprise Linux)觉得这样非常方便查错,但我自己用的 Debian GNU/Linux 却默认不生成这个文件。
% ?* i& }/ [0 F8 o) o魔力私服,最新魔力宝贝私服技术交流检查以后发现原因是 core 文件最大尺寸(用 ulimit -c 查看)是 0,把它设置成非 0 值就可以了,如:妖城在线论坛3 \. G, |: s0 }( k/ W
ulimit -c 2048(设置 core 文件最大尺寸为 2048 blocks,1block=512bytes,因此这里设置的其实是 1MiB)
/ U4 q$ ?6 Z# v# l' Vbbs.mocwww.comulimit -c unlimited(不限 core 文件尺寸)—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート* u; o0 V& V' I- X h8 x% f
附:用 gdb 根据 core dump 文件定位错误的办法。妖城在线论坛9 h6 P1 o- K5 x" ^+ \8 S9 L
用这个程序作一个测试:bbs.mocwww.com, \ m. y9 z2 y0 ^8 l
int foo (int *p)
1 U( C1 `5 V8 R/ I; r( O; W, M魔力私服,最新魔力宝贝私服技术交流{
) s) P/ I5 i% z2 b$ Rbbs.mocwww.comreturn *p;bbs.mocwww.com' V$ V- Q( `# Y$ _. } S$ J9 Z+ j1 f. Y
}
8 C' @2 \9 W& X! K9 @/ r3 f—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲートmain()
4 {# r* @8 d* _1 \- G: j; P魔力私服,最新魔力宝贝私服技术交流{妖城在线论坛, i2 X h0 Q" H% C) X# g0 v
foo (0);—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート M3 C( W) f% b* |2 J
}—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート. h, l1 |" h, Q( F; L, F Z
derek@dli: /tmp $ gcc -g a.c
/ a8 i% P6 A. n+ w1 q魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表derek@dli: /tmp $ ./a.out4 M5 k# P7 L5 }$ k! }( A
段错误 (core dumped)bbs.mocwww.com. | @1 F( i5 g! k( l' Z$ w
derek@dli: /tmp $ gdb ./a.out -c core—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート0 f9 P8 \; T4 {7 T
(这里略去约十行其他信息)
6 g. ^+ _ E$ i% M' G4 fCore was generated by `./a.out'.
7 G. n( E& K7 m J H" K—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲートProgram terminated with signal 11, Segmentation fault.
- B0 Z' l7 e7 T/ f9 F妖城在线论坛#0 0x0804834a in foo (p=0x0) at a.c:3bbs.mocwww.com: ^2 \8 L' [# d& V' M2 B
3 return *p;6 k; l" g( J% s" J4 e
如果再输入一条命令 bt,就可以看得清清楚楚错误是在什么时机产生的:
2 X) j1 ^: `, O9 u* P: x4 F妖城在线论坛(gdb) bt
6 H$ f% p$ I# S#0 0x0804834a in foo (p=0x0) at a.c:35 h [! J9 w. _: ~2 M2 i: e* R! p
#1 0x0804836b in main () at a.c:8bbs.mocwww.com3 f) [5 K: R7 c6 E" A5 }
不能有比这更清楚的错误信息了!如果是在 Windows 下,就老老实实 Trace and Step 吧。
, _) c0 t Q6 i& H" I& Q8 k0 Z魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表
* H" f$ D* \5 ~9 Q" S4 O y9 M魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表百度知道摘的有关段错误的解释
B% ^' q6 t! q: J! h) s& Gbbs.mocwww.com参考一下便于理解魔力私服,最新魔力宝贝私服技术交流" j* P* i" C5 t& P3 R+ C) j, T) ]
至于出错的原因 最好贴更多的信息 上面应该还有其他错误提示才对吧
+ ^) i. m& W, l妖城在线论坛