0 ~, n9 g1 v9 l3 M. x—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲートThe problem that no `core' file is created on a segmentation fault; Locate errors in the source with GDB and `core' files
& [( g& l5 e3 {4 R4 q9 L0 D# o魔力私服,最新魔力宝贝私服技术交流Linux 程序在遇到段错误(常见的是由非法访问内存引起)的时候会产生 core 文件,如果这个程序包含调试信息(编译的时候加 -g 选项),那么使用 gdb 读取这个 core 文件可以快速定位出错的源代码。原来在某软件公司实习的时候(用 RedHat Enterprise Linux)觉得这样非常方便查错,但我自己用的 Debian GNU/Linux 却默认不生成这个文件。魔力私服,最新魔力宝贝私服技术交流: Q4 O- Y/ g3 ]; A8 U
检查以后发现原因是 core 文件最大尺寸(用 ulimit -c 查看)是 0,把它设置成非 0 值就可以了,如:
8 ]) Y& F. J/ N4 F5 B0 f" h" v魔力私服,最新魔力宝贝私服技术交流ulimit -c 2048(设置 core 文件最大尺寸为 2048 blocks,1block=512bytes,因此这里设置的其实是 1MiB)魔力私服,最新魔力宝贝私服技术交流- E! z# x* w3 q
ulimit -c unlimited(不限 core 文件尺寸)8 G2 O4 d3 y) [# R) x" `) K/ w
附:用 gdb 根据 core dump 文件定位错误的办法。
6 Y6 @- P) H( m. ]: C% ^妖城在线论坛用这个程序作一个测试:
! g! P2 Y5 @ L5 ~妖城在线论坛int foo (int *p)魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表9 ?) u5 b& t2 @9 s' d
{
6 [- w3 U6 h" P; J1 nbbs.mocwww.comreturn *p;妖城在线论坛0 S' t1 s* Y5 p
}
8 @. f: @3 O- K8 t8 g- F" w魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表main()魔力私服,最新魔力宝贝私服技术交流" ^( R3 [6 T" M' U3 @
{8 m' ^ w/ f: Y* ?( v, v
foo (0);
# q4 l( `7 t$ _. K妖城在线论坛}
* b- Q; O* B E: S0 ^. O1 aderek@dli: /tmp $ gcc -g a.cbbs.mocwww.com- M# k W: d; } }, a
derek@dli: /tmp $ ./a.out
. k) f7 h r$ h) b4 r魔力私服,最新魔力宝贝私服技术交流段错误 (core dumped)
3 y$ b; q8 V4 V% S魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表derek@dli: /tmp $ gdb ./a.out -c core" A1 _0 w2 ]7 S
(这里略去约十行其他信息)魔力私服,最新魔力宝贝私服技术交流, O, `0 O, D/ X, T4 { B% W8 _+ x
Core was generated by `./a.out'.
1 _/ v+ D! \- B5 ?3 G% i3 l% ~( Bbbs.mocwww.comProgram terminated with signal 11, Segmentation fault.
& E. G9 R1 u1 B& _) k4 Qbbs.mocwww.com#0 0x0804834a in foo (p=0x0) at a.c:3bbs.mocwww.com7 n, c6 M8 U" z1 l' D
3 return *p;妖城在线论坛, y& _. n1 Z& j0 }, }) D1 |
如果再输入一条命令 bt,就可以看得清清楚楚错误是在什么时机产生的:魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表! X- B9 v }8 j5 c$ U
(gdb) bt
! X7 I$ }. w- ~9 u4 W魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表#0 0x0804834a in foo (p=0x0) at a.c:3bbs.mocwww.com6 h; i/ ]1 F1 g* v+ w
#1 0x0804836b in main () at a.c:8
8 l6 s# _9 O: S魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表不能有比这更清楚的错误信息了!如果是在 Windows 下,就老老实实 Trace and Step 吧。
$ j: Y' M% p6 U1 {bbs.mocwww.com
% Y6 T& L5 Y2 g$ ]' @; V" Q( I百度知道摘的有关段错误的解释妖城在线论坛2 r. h7 o6 M9 h0 d% l% m7 E8 a
参考一下便于理解魔力私服,最新魔力宝贝私服技术交流. d* R. L4 S( G9 u
至于出错的原因 最好贴更多的信息 上面应该还有其他错误提示才对吧bbs.mocwww.com, L# f4 n3 B4 i) q0 n