% F- ^; d# @8 M% z, l* O+ n* R& a魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表The problem that no `core' file is created on a segmentation fault; Locate errors in the source with GDB and `core' files
8 f n4 n% Z! b5 X9 wbbs.mocwww.comLinux 程序在遇到段错误(常见的是由非法访问内存引起)的时候会产生 core 文件,如果这个程序包含调试信息(编译的时候加 -g 选项),那么使用 gdb 读取这个 core 文件可以快速定位出错的源代码。原来在某软件公司实习的时候(用 RedHat Enterprise Linux)觉得这样非常方便查错,但我自己用的 Debian GNU/Linux 却默认不生成这个文件。bbs.mocwww.com/ O) P$ t/ L" ^2 `
检查以后发现原因是 core 文件最大尺寸(用 ulimit -c 查看)是 0,把它设置成非 0 值就可以了,如:
, R: m/ \) r/ w1 x& w妖城在线论坛ulimit -c 2048(设置 core 文件最大尺寸为 2048 blocks,1block=512bytes,因此这里设置的其实是 1MiB)魔力私服,最新魔力宝贝私服技术交流1 a5 m( i3 G8 `9 L3 t
ulimit -c unlimited(不限 core 文件尺寸)魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表$ D4 I( D. v# r C3 @
附:用 gdb 根据 core dump 文件定位错误的办法。
0 T4 j1 l3 U% v6 p3 O—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート用这个程序作一个测试:
6 Z+ ?% s b- P- v; s- f( mint foo (int *p)魔力私服,最新魔力宝贝私服技术交流6 f1 \% K* ?' L2 D! G$ {
{
8 ~ r4 v4 J, o6 w/ b魔力私服,最新魔力宝贝私服技术交流return *p;bbs.mocwww.com, s# L0 y1 w) z* z
}
. C8 s" }; u) M4 R+ }魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表main()bbs.mocwww.com7 z4 I7 r( k/ |" t# ?# k5 L$ x5 f
{bbs.mocwww.com# {8 U8 l7 W0 V7 O$ K: \
foo (0);魔力私服,最新魔力宝贝私服技术交流8 K# D: {/ g) A8 ^' O
}—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート, B# h0 z1 t4 z4 `2 N3 j6 w% N
derek@dli: /tmp $ gcc -g a.c—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート# C# c8 a% J0 A$ r" ]# E
derek@dli: /tmp $ ./a.out
1 l( ]6 t: {$ I- v' [* z6 x妖城在线论坛段错误 (core dumped)bbs.mocwww.com# I: |9 P* P( e5 m# b1 ^* D6 _
derek@dli: /tmp $ gdb ./a.out -c core—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート# I- H# Q9 @8 I/ {* u* T( x
(这里略去约十行其他信息)
" p0 `4 Y! h" Z K魔力私服,最新魔力宝贝私服技术交流Core was generated by `./a.out'.
/ u: n' e: c( D* V. H4 \# yProgram terminated with signal 11, Segmentation fault.魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表8 _2 F/ w0 Y% H: b5 f
#0 0x0804834a in foo (p=0x0) at a.c:3魔力私服,最新魔力宝贝私服技术交流) C; h2 u. D8 j7 x+ q4 Y
3 return *p;
" x) ]$ w6 O2 \ P—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート如果再输入一条命令 bt,就可以看得清清楚楚错误是在什么时机产生的:—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート, X6 I c8 d5 A$ p; G7 U
(gdb) bt
! s; d- Q, d& Y# _. R魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表#0 0x0804834a in foo (p=0x0) at a.c:3
; R# j# E: l1 `6 k, l#1 0x0804836b in main () at a.c:8魔力私服,最新魔力宝贝私服技术交流' r8 K! D( n/ ^5 p
不能有比这更清楚的错误信息了!如果是在 Windows 下,就老老实实 Trace and Step 吧。
; V7 D% ?7 [1 \6 v6 f! A: v. P—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート
& j6 m; |' m& M+ C0 r8 I7 w—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート百度知道摘的有关段错误的解释
2 I; }" X* I$ F7 l! m- M9 ybbs.mocwww.com参考一下便于理解魔力私服,最新魔力宝贝私服技术交流7 q' N( M! w6 W- d/ ]
至于出错的原因 最好贴更多的信息 上面应该还有其他错误提示才对吧
3 Q0 p, h0 g0 L, f魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表