mirror of
https://github.com/darlinghq/darling-gdb.git
synced 2024-11-29 15:00:34 +00:00
* utils.c (strcmp_iw): Add a hack to allow "FOO(ARGS)" to
match "FOO". This allows 'break Foo' to work when Foo is a mangled C++ function. (See comment before function.)
This commit is contained in:
parent
82eabd43a8
commit
546014f750
@ -1,3 +1,9 @@
|
||||
Wed Sep 2 20:45:31 1992 Per Bothner (bothner@rtl.cygnus.com)
|
||||
|
||||
* utils.c (strcmp_iw): Add a hack to allow "FOO(ARGS)" to
|
||||
match "FOO". This allows 'break Foo' to work when Foo is
|
||||
a mangled C++ function. (See comment before function.)
|
||||
|
||||
Wed Sep 2 13:45:27 1992 John Gilmore (gnu@cygnus.com)
|
||||
|
||||
* config/rs6000.mh (MH_CFLAGS): Circumvent IBM <rpc/rpc.h> bug,
|
||||
|
60
gdb/utils.c
60
gdb/utils.c
@ -699,6 +699,8 @@ query (va_alist)
|
||||
|
||||
while (1)
|
||||
{
|
||||
wrap_here (""); /* Flush any buffered output */
|
||||
fflush (stdout);
|
||||
va_start (args);
|
||||
ctlstr = va_arg (args, char *);
|
||||
vfprintf_filtered (stdout, ctlstr, args);
|
||||
@ -1215,9 +1217,9 @@ void
|
||||
fprintf_filtered (va_alist)
|
||||
va_dcl
|
||||
{
|
||||
va_list args;
|
||||
FILE *stream;
|
||||
char *format;
|
||||
va_list args;
|
||||
|
||||
va_start (args);
|
||||
stream = va_arg (args, FILE *);
|
||||
@ -1229,6 +1231,31 @@ fprintf_filtered (va_alist)
|
||||
va_end (args);
|
||||
}
|
||||
|
||||
/* Like fprintf_filtered, but prints it's result indent.
|
||||
Called as fprintfi_filtered (spaces, format, arg1, arg2, ...); */
|
||||
|
||||
/* VARARGS */
|
||||
void
|
||||
fprintfi_filtered (va_alist)
|
||||
va_dcl
|
||||
{
|
||||
va_list args;
|
||||
int spaces;
|
||||
FILE *stream;
|
||||
char *format;
|
||||
|
||||
va_start (args);
|
||||
spaces = va_arg (args, int);
|
||||
stream = va_arg (args, FILE *);
|
||||
format = va_arg (args, char *);
|
||||
print_spaces_filtered (spaces, stream);
|
||||
|
||||
/* This won't blow up if the restrictions described above are
|
||||
followed. */
|
||||
vfprintf_filtered (stream, format, args);
|
||||
va_end (args);
|
||||
}
|
||||
|
||||
/* VARARGS */
|
||||
void
|
||||
printf_filtered (va_alist)
|
||||
@ -1244,6 +1271,26 @@ printf_filtered (va_alist)
|
||||
va_end (args);
|
||||
}
|
||||
|
||||
/* Like printf_filtered, but prints it's result indented.
|
||||
Called as printfi_filtered (spaces, format, arg1, arg2, ...); */
|
||||
|
||||
/* VARARGS */
|
||||
void
|
||||
printfi_filtered (va_alist)
|
||||
va_dcl
|
||||
{
|
||||
va_list args;
|
||||
int spaces;
|
||||
char *format;
|
||||
|
||||
va_start (args);
|
||||
spaces = va_arg (args, int);
|
||||
format = va_arg (args, char *);
|
||||
print_spaces_filtered (spaces, stdout);
|
||||
vfprintf_filtered (stdout, format, args);
|
||||
va_end (args);
|
||||
}
|
||||
|
||||
/* Easy */
|
||||
|
||||
void
|
||||
@ -1325,9 +1372,14 @@ fprint_symbol (stream, name)
|
||||
|
||||
/* Do a strcmp() type operation on STRING1 and STRING2, ignoring any
|
||||
differences in whitespace. Returns 0 if they match, non-zero if they
|
||||
don't (slightly different than strcmp()'s range of return values). */
|
||||
don't (slightly different than strcmp()'s range of return values).
|
||||
|
||||
As an extra hack, string1=="FOO(ARGS)" matches string2=="FOO".
|
||||
This "feature" is useful for demangle_and_match(), which is used
|
||||
when searching for matching C++ function names (such as if the
|
||||
user types 'break FOO', where FOO is a mangled C++ function). */
|
||||
|
||||
int
|
||||
static int
|
||||
strcmp_iw (string1, string2)
|
||||
const char *string1;
|
||||
const char *string2;
|
||||
@ -1352,7 +1404,7 @@ strcmp_iw (string1, string2)
|
||||
string2++;
|
||||
}
|
||||
}
|
||||
return (!((*string1 == '\0') && (*string2 == '\0')));
|
||||
return (*string1 != '\0' && *string1 != '(') || (*string2 != '\0');
|
||||
}
|
||||
|
||||
/* Demangle NAME and compare the result with LOOKFOR, ignoring any differences
|
||||
|
Loading…
Reference in New Issue
Block a user