发新话题
打印

【求助】gdb调试的问题

【求助】gdb调试的问题

用gdb调试程序如下
% R% H1 y; w7 @ #include <stdio.h>6 S2 [4 M6 F' W: _! a' ]
void my_print (char *string)2 h# ~, Z: h  G. k5 `
{' p& S9 ~) S" k& e& y
printf ("The string is %s\n", string);
) v7 w$ o: y* [# o+ Y/ \# t4 h }
8 J0 T! Y" k8 j8 f# K" b6 c void my_print2 (char *string)
  P* e3 c3 q' C: o. ` {
8 I  D1 R. @) i! ]4 I char *string2;
4 p( ~" h8 `- h# Q& O& \ int size, i;
6 a: I) @; f8 O9 ~. q size = strlen (string);
& A7 S: b) y  F' e+ A% Z  M string2 = (char *) malloc (size + 1);" H  `4 O- Y, r' W8 Q
for (i = 0; i < size; i++)5 }3 w; D0 ]$ p9 g: i7 |6 L
string2[size - i] = string;: Z$ F( w  O% }1 V6 R
string2[size+1] = '\0';
4 W  W+ ~/ O$ B& S# }& M printf ("The string printed backward is %s\n", string2);7 Q9 A9 k: e, }9 C3 E( ^0 w
}
5 q$ c* d0 D; n" x$ s' e6 | main ()
$ M+ F/ c+ y6 \( t! S  o8 i {
  U7 ?* u6 K4 Z& x& X7 j1 H+ w1 _* Y1 d char my_string[] = "hello there";
# y8 [" t& h" o1 ~ my_print (my_string);
1 _% ~' @3 B8 |% J% U/ e my_print2 (my_string);
( Q2 _$ }; H2 J& e' J }
1 `0 U  c6 B9 P! p# L/ ? 在string2[size - i] = string;这行用break设断点
/ G3 M$ Y/ z# F$ B 用watch观察变量string2[size-i]2 F3 [( t! _- D0 a3 q+ a0 `1 G
再输入next后按回车,却显示
: R" R" b' N4 g; s (gdb) next
, l6 p* q4 O7 d2 p0 p warning: Could not remove hardware watchpoint 2.. |$ b( j! l+ [" n* l+ i
Warning:" Y: T$ x/ P$ P- g7 q
Could not insert hardware watchpoint 2.
" q( [5 o3 m8 `4 E* [$ r& ] Could not insert hardware breakpoints:
. n' q; i- v, H/ z5 C3 C You may have requested too many hardware breakpoints/watchpoints.2 @7 F+ t- f' m: R+ m  C+ ]! k
请问各位,哪里出错了      

TOP

操作问题?没见过这种错,重新调试呢?      
上帝说,有问题,找GOOGLE 写程序是很神圣的事情!同样只是装系统,卖菜的大娘会的事情不见得就跟卖菜一样了。

TOP

#include <stdio.h>6 @+ ?+ m( I6 J1 V+ n# X3 P+ }

4 e6 u* t& K- m" achar *string;' K+ `# ~4 }0 I3 T: U
void my_print (char *string)% H) T- F1 d0 t6 ^% ^+ I2 J5 E
{
! f5 l6 a1 i' k3 `% v9 M( u& Y2 _printf ("The string is %s\n", string);5 y8 Q. G2 n/ i3 f, \
}7 I# _$ h4 z4 V9 ]

0 h, y8 D' S0 c& s8 U: N, Yvoid my_print2 (char *string)
2 r+ |' Y8 ?- O; T{
# u$ Y- w: H% A' z; W  W
& v4 r, n/ O0 a( x  `% iint size, i;
, G0 H9 t! q, ]( h. T) B: Xsize = strlen (string);1 \/ B( E, X. W* ]
string = (char *) malloc (size + 1);$ K8 j7 b3 e3 I% H+ q
for (i = 0; i < size; i++)/ ]6 A- Y9 I/ i' A1 s2 }
string[size - i] = string;
* q  E6 G8 Q6 ~2 Q' \# |; r" o6 Z$ Astring[size+1] = '\0';
$ v! B: M, R$ b! Uprintf ("The string printed backward is %s\n", string);
7 Q, K7 a4 S- N* p}
& y( l0 L( v7 E9 [) o$ W
+ C3 W  K/ L( \8 K. C3 p3 mmain ()
3 q# N  j% b7 s% Y. i{
# v1 Z4 _+ ~1 pchar my_string[] = "hello there";: n1 p. d  D' |4 Z% E! S1 r& o$ N
my_print (my_string);
- x3 C9 j6 a; W: y4 |# amy_print2 (my_string);
$ j1 k, o3 H3 E$ E5 k}
2 F" L+ i/ P6 M( d6 E5 d
8 m0 L. [7 ]& D/ M! E9 |* R. p! Z- i# {( T
我这样改了,输出是:
! B" p5 @! U8 `5 JThe string is hello there0 I; E9 k5 q9 t
The string printed backward is      

TOP

发新话题