发新话题
打印

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


7 q: o7 r( }" b% _The problem that no `core' file is created on a segmentation fault; Locate errors in the source with GDB and `core' files
' M+ a' Z  [( abbs.mocwww.comLinux 程序在遇到段错误(常见的是由非法访问内存引起)的时候会产生 core 文件,如果这个程序包含调试信息(编译的时候加 -g 选项),那么使用 gdb 读取这个 core 文件可以快速定位出错的源代码。原来在某软件公司实习的时候(用 RedHat Enterprise Linux)觉得这样非常方便查错,但我自己用的 Debian GNU/Linux 却默认不生成这个文件。
3 q0 E% \' o; c/ n: \. z! a3 K魔力私服,最新魔力宝贝私服技术交流检查以后发现原因是 core 文件最大尺寸(用 ulimit -c 查看)是 0,把它设置成非 0 值就可以了,如:  V  ~' _5 b0 v  r( t- G
ulimit -c 2048(设置 core 文件最大尺寸为 2048 blocks,1block=512bytes,因此这里设置的其实是 1MiB)
. ^% J( m5 T; V- O魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表ulimit -c unlimited(不限 core 文件尺寸)妖城在线论坛) R5 f* q8 V( J: n& `. A
附:用 gdb 根据 core dump 文件定位错误的办法。魔力私服,最新魔力宝贝私服技术交流6 e3 Q$ w+ S1 M. z
用这个程序作一个测试:—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート( }; j$ I4 U2 N) L
int foo (int *p)
* E) Y! c" z: ~{妖城在线论坛3 w8 w4 N0 ^* A4 s+ s  V5 ^% q: X
return *p;bbs.mocwww.com5 D$ B6 G8 b! Q/ k5 P
}
& J- F% n, x3 R—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲートmain()—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート) H' W% L: R* P8 L
{
; `# ]; J& ^3 V' q$ b' Ibbs.mocwww.comfoo (0);
/ ?& ~0 _. Q  ^% }  n4 Y: D}魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表0 c' B% b) v5 d8 M
derek@dli: /tmp $ gcc -g a.c
! ]5 r: L# r0 u' P; q& k魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表derek@dli: /tmp $ ./a.out妖城在线论坛) N* v  v; b7 Z+ `% @
段错误 (core dumped)魔力私服,最新魔力宝贝私服技术交流9 O8 {- e! I. H' S$ R% h) @4 w
derek@dli: /tmp $ gdb ./a.out -c core
; [7 W4 O% ]# a- |5 T. K% @魔力私服,最新魔力宝贝私服技术交流(这里略去约十行其他信息)bbs.mocwww.com* v- t& `) L2 w/ s% f/ G
Core was generated by `./a.out'.魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表! c( ~7 q1 q% R, q7 T: z5 ?
Program terminated with signal 11, Segmentation fault.5 S5 F, x5 h( J, L" v
#0 0x0804834a in foo (p=0x0) at a.c:3
  j: a7 N; o- D* @魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表3 return *p;
9 C% |  |: X% i6 A妖城在线论坛如果再输入一条命令 bt,就可以看得清清楚楚错误是在什么时机产生的:
/ w# T9 `7 q( F0 @—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート(gdb) bt
' V2 m4 _% ^7 K5 Q8 y6 |. }魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表#0 0x0804834a in foo (p=0x0) at a.c:3魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表, O( a/ r( N: q* E; K
#1 0x0804836b in main () at a.c:8魔力私服,最新魔力宝贝私服技术交流9 I* a5 m0 \( c
不能有比这更清楚的错误信息了!如果是在 Windows 下,就老老实实 Trace and Step 吧。
8 c1 B' Z  d: m% o魔力私服,最新魔力宝贝私服技术交流
bbs.mocwww.com! O: b$ R6 q* I4 Z
百度知道摘的有关段错误的解释bbs.mocwww.com" y, |, I1 M6 \8 C# x& N$ [
参考一下便于理解魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表$ W" X% U5 m) y4 ~, L3 g3 Q
至于出错的原因 最好贴更多的信息 上面应该还有其他错误提示才对吧
) `. h* B# l* k& H! V+ j魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表

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

TOP

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

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

TOP

发新话题