发新话题
打印

[提问] 运行gmsv时出现奇怪的错误

妖城在线论坛( y* m# s, c" [$ c* g- [3 t& z4 v3 u
The problem that no `core' file is created on a segmentation fault; Locate errors in the source with GDB and `core' files
% M4 h2 }, C. R魔力私服,最新魔力宝贝私服技术交流Linux 程序在遇到段错误(常见的是由非法访问内存引起)的时候会产生 core 文件,如果这个程序包含调试信息(编译的时候加 -g 选项),那么使用 gdb 读取这个 core 文件可以快速定位出错的源代码。原来在某软件公司实习的时候(用 RedHat Enterprise Linux)觉得这样非常方便查错,但我自己用的 Debian GNU/Linux 却默认不生成这个文件。
& e7 {8 ?( I  X  [8 ]. L2 m& S0 R魔力私服,最新魔力宝贝私服技术交流检查以后发现原因是 core 文件最大尺寸(用 ulimit -c 查看)是 0,把它设置成非 0 值就可以了,如:
/ h  Z! e3 Y/ pulimit -c 2048(设置 core 文件最大尺寸为 2048 blocks,1block=512bytes,因此这里设置的其实是 1MiB)
/ m$ R1 I& L" b* u  d妖城在线论坛ulimit -c unlimited(不限 core 文件尺寸)—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート" J9 p( I3 O  e; y  u% E5 [" Y
附:用 gdb 根据 core dump 文件定位错误的办法。
  C& M! I. g/ E, Y7 G+ s用这个程序作一个测试:
& F5 g! R7 `$ O; W魔力私服,最新魔力宝贝私服技术交流int foo (int *p)—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート4 E0 q2 ^* J4 M, x! }
{—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート8 C% k& @* [5 s  i9 `  H7 s
return *p;魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表9 M* P9 W/ y" u" J$ y; N
}bbs.mocwww.com. `% M! \4 r0 k7 T; j2 p* K
main()
4 i3 ]' c4 T  e- d# n魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表{
% S- r( z' {; P; _4 P4 C9 bfoo (0);魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表, B& h3 ], B$ b+ e* H. E6 S
}妖城在线论坛  Q* K$ t1 A& O5 T) F
derek@dli: /tmp $ gcc -g a.c魔力私服,最新魔力宝贝私服技术交流' [% ?8 T+ e+ p' ~% r" J" Q
derek@dli: /tmp $ ./a.out
3 x$ S+ ]* j8 o+ z1 P* t8 q% D4 K5 N魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表段错误 (core dumped)妖城在线论坛3 y* `6 r7 [( i$ J
derek@dli: /tmp $ gdb ./a.out -c core
  d) q1 Z, c' f+ m1 `- S5 ~妖城在线论坛(这里略去约十行其他信息)
3 y# M8 [) O" s$ r/ H& m—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲートCore was generated by `./a.out'.
: L: e- w; ]) a妖城在线论坛Program terminated with signal 11, Segmentation fault.
4 p9 _1 j- W& u/ M1 y#0 0x0804834a in foo (p=0x0) at a.c:3bbs.mocwww.com% f: b5 c. J, R6 d( \$ y
3 return *p;魔力私服,最新魔力宝贝私服技术交流+ E( D3 {6 q2 d$ h
如果再输入一条命令 bt,就可以看得清清楚楚错误是在什么时机产生的:
# F) `" j. g7 K+ v7 ]bbs.mocwww.com(gdb) bt魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表  q0 {% ~+ ?, u  \8 X: @7 }
#0 0x0804834a in foo (p=0x0) at a.c:3妖城在线论坛% l- a; z2 A2 v) ]  I) R$ S2 \
#1 0x0804836b in main () at a.c:8
- X. f  a9 M  }# [6 I6 I妖城在线论坛不能有比这更清楚的错误信息了!如果是在 Windows 下,就老老实实 Trace and Step 吧。魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表/ M; |) f5 G% F8 M$ f  [' t9 x, g8 N
魔力私服,最新魔力宝贝私服技术交流; S2 a9 K6 ^3 ^
百度知道摘的有关段错误的解释9 Z6 P, M0 x! q- @3 h) r
参考一下便于理解
" `( S5 j- U: J1 f& ~魔力私服,最新魔力宝贝私服技术交流至于出错的原因 最好贴更多的信息 上面应该还有其他错误提示才对吧魔力私服,最新魔力宝贝私服技术交流6 i5 q7 ~8 ^8 s: i* [1 y

在我今日的悲伤里,最为苦涩的是我昨日欢乐的回忆。

TOP

嗯  你的系统是什么发行版?

在我今日的悲伤里,最为苦涩的是我昨日欢乐的回忆。

TOP

发新话题