2011-01-11 Michael Snyder <msnyder@vmware.com>

* ui-file.c: Comment cleanup, mostly periods and spaces.
	* ui-file.h: Ditto.
	* ui-out.c: Ditto.
	* ui-out.h: Ditto.
	* utils.c: Ditto.
	* v850-tdep.c: Ditto.
	* valarith.c: Ditto.
	* valops.c: Ditto.
	* valprint.c: Ditto.
	* valprint.h: Ditto.
	* value.c: Ditto.
	* value.h: Ditto.
	* varobj.c: Ditto.
	* varobj.h: Ditto.
	* vax-tdep.c: Ditto.
	* vec.c: Ditto.
	* vec.h: Ditto.
	* version.h: Ditto.
	* windows-nat.c: Ditto.
	* windows-tdep.c: Ditto.
	* xcoffread.c: Ditto.
	* xcoffsolib.c: Ditto.
	* xml-support.c: Ditto.
	* xstormy16-tdep.c: Ditto.
	* xtensa-tdep.c: Ditto.
	* xtensa-tdep.h: Ditto.
This commit is contained in:
Michael Snyder 2011-01-12 01:23:29 +00:00
parent d2a0f03272
commit 581e13c188
27 changed files with 811 additions and 726 deletions

View file

@ -61,6 +61,35 @@
* trad-frame.h: Ditto.
* typeprint.c: Ditto.
2011-01-11 Michael Snyder <msnyder@vmware.com>
* ui-file.c: Comment cleanup, mostly periods and spaces.
* ui-file.h: Ditto.
* ui-out.c: Ditto.
* ui-out.h: Ditto.
* utils.c: Ditto.
* v850-tdep.c: Ditto.
* valarith.c: Ditto.
* valops.c: Ditto.
* valprint.c: Ditto.
* valprint.h: Ditto.
* value.c: Ditto.
* value.h: Ditto.
* varobj.c: Ditto.
* varobj.h: Ditto.
* vax-tdep.c: Ditto.
* vec.c: Ditto.
* vec.h: Ditto.
* version.h: Ditto.
* windows-nat.c: Ditto.
* windows-tdep.c: Ditto.
* xcoffread.c: Ditto.
* xcoffsolib.c: Ditto.
* xml-support.c: Ditto.
* xstormy16-tdep.c: Ditto.
* xtensa-tdep.c: Ditto.
* xtensa-tdep.h: Ditto.
2011-01-11 Thiago Jung Bauermann <bauerman@br.ibm.com>
* breakpoint.c (resources_needed_watchpoint): Fix indentation.

View file

@ -83,7 +83,7 @@ extern int ui_file_isatty (struct ui_file *);
extern void ui_file_write (struct ui_file *file, const char *buf,
long length_buf);
/* NOTE: copies left to right */
/* NOTE: copies left to right. */
extern void ui_file_put (struct ui_file *src,
ui_file_put_method_ftype *write, void *dest);

View file

@ -48,7 +48,7 @@ enum { MAX_UI_OUT_LEVELS = 8 };
struct ui_out_level
{
/* Count each field; the first element is for non-list fields */
/* Count each field; the first element is for non-list fields. */
int field_count;
/* The type of this level. */
enum ui_out_type type;
@ -93,12 +93,12 @@ struct ui_out_table
/* The ui_out structure */
/* Any change here requires a corresponding one in the initialization
of the default uiout, which is statically initialized */
of the default uiout, which is statically initialized. */
struct ui_out
{
int flags;
/* specific implementation of ui-out */
/* Specific implementation of ui-out. */
struct ui_out_impl *impl;
void *data;
@ -148,7 +148,7 @@ pop_level (struct ui_out *uiout,
}
/* These are the default implementation functions */
/* These are the default implementation functions. */
static void default_table_begin (struct ui_out *uiout, int nbrofcols,
int nr_rows, const char *tblid);
@ -187,7 +187,7 @@ static void default_message (struct ui_out *uiout, int verbosity,
static void default_wrap_hint (struct ui_out *uiout, char *identstring);
static void default_flush (struct ui_out *uiout);
/* This is the default ui-out implementation functions vector */
/* This is the default ui-out implementation functions vector. */
struct ui_out_impl default_ui_out_impl =
{
@ -220,11 +220,11 @@ struct ui_out def_uiout =
/* Pointer to current ui_out */
/* FIXME: This should not be a global, but something passed down from main.c
or top.c */
or top.c. */
struct ui_out *uiout = &def_uiout;
/* These are the interfaces to implementation functions */
/* These are the interfaces to implementation functions. */
static void uo_table_begin (struct ui_out *uiout, int nbrofcols,
int nr_rows, const char *tblid);
@ -270,7 +270,7 @@ static void verify_field (struct ui_out *uiout, int *fldno, int *width,
/* exported functions (ui_out API) */
/* Mark beginning of a table */
/* Mark beginning of a table. */
static void
ui_out_table_begin (struct ui_out *uiout, int nbrofcols,
@ -526,7 +526,7 @@ ui_out_field_stream (struct ui_out *uiout,
do_cleanups (old_cleanup);
}
/* used to ommit a field */
/* Used to omit a field. */
void
ui_out_field_skip (struct ui_out *uiout,
@ -566,7 +566,7 @@ ui_out_field_fmt (struct ui_out *uiout,
int width;
int align;
/* will not align, but has to call anyway */
/* Will not align, but has to call anyway. */
verify_field (uiout, &fldno, &width, &align);
va_start (args, format);
@ -649,7 +649,7 @@ ui_out_redirect (struct ui_out *uiout, struct ui_file *outstream)
return uo_redirect (uiout, outstream);
}
/* set the flags specified by the mask given */
/* Set the flags specified by the mask given. */
int
ui_out_set_flags (struct ui_out *uiout, int mask)
{
@ -659,7 +659,7 @@ ui_out_set_flags (struct ui_out *uiout, int mask)
return oldflags;
}
/* clear the flags specified by the mask given */
/* Clear the flags specified by the mask given. */
int
ui_out_clear_flags (struct ui_out *uiout, int mask)
{
@ -669,20 +669,20 @@ ui_out_clear_flags (struct ui_out *uiout, int mask)
return oldflags;
}
/* test the flags against the mask given */
/* Test the flags against the mask given. */
int
ui_out_test_flags (struct ui_out *uiout, int mask)
{
return (uiout->flags & mask);
}
/* obtain the current verbosity level (as stablished by the
'set verbositylevel' command */
/* Obtain the current verbosity level (as stablished by the
'set verbositylevel' command. */
int
ui_out_get_verblvl (struct ui_out *uiout)
{
/* FIXME: not implemented yet */
/* FIXME: not implemented yet. */
return 0;
}
@ -747,7 +747,7 @@ ui_out_is_mi_like_p (struct ui_out *uiout)
return uiout->impl->is_mi_like_p;
}
/* default gdb-out hook functions */
/* Default gdb-out hook functions. */
static void
default_table_begin (struct ui_out *uiout, int nbrofcols,
@ -847,7 +847,7 @@ default_flush (struct ui_out *uiout)
{
}
/* Interface to the implementation functions */
/* Interface to the implementation functions. */
void
uo_table_begin (struct ui_out *uiout, int nbrofcols,
@ -1001,7 +1001,7 @@ uo_redirect (struct ui_out *uiout, struct ui_file *outstream)
/* local functions */
/* list of column headers manipulation routines */
/* List of column headers manipulation routines. */
static void
clear_header_list (struct ui_out *uiout)
@ -1126,14 +1126,14 @@ specified after table_body and inside a list."));
}
/* access to ui_out format private members */
/* Access to ui_out format private members. */
void
ui_out_get_field_separator (struct ui_out *uiout)
{
}
/* Access to ui-out members data */
/* Access to ui-out members data. */
void *
ui_out_data (struct ui_out *uiout)
@ -1141,7 +1141,7 @@ ui_out_data (struct ui_out *uiout)
return uiout->data;
}
/* initalize private members at startup */
/* Initalize private members at startup. */
struct ui_out *
ui_out_new (struct ui_out_impl *impl, void *data,
@ -1162,7 +1162,7 @@ ui_out_new (struct ui_out_impl *impl, void *data,
return uiout;
}
/* standard gdb initialization hook */
/* Standard gdb initialization hook. */
void
_initialize_ui_out (void)

View file

@ -32,7 +32,7 @@ struct ui_file;
/* the current ui_out */
/* FIXME: This should not be a global but something passed down from main.c
or top.c */
or top.c. */
extern struct ui_out *uiout;
/* alignment enum */
@ -189,7 +189,7 @@ extern int ui_out_is_mi_like_p (struct ui_out *uiout);
/* From here on we have things that are only needed by implementation
routines and main.c. We should pehaps have a separate file for that,
like a ui-out-impl.h file */
like a ui-out-impl.h file. */
/* User Interface Output Implementation Function Table */
@ -240,7 +240,7 @@ typedef int (redirect_ftype) (struct ui_out * uiout,
/* ui-out-impl */
/* IMPORTANT: If you change this structure, make sure to change the default
initialization in ui-out.c */
initialization in ui-out.c. */
struct ui_out_impl
{

View file

@ -963,7 +963,7 @@ vwarning (const char *string, va_list args)
else
{
target_terminal_ours ();
wrap_here (""); /* Force out any buffered output */
wrap_here (""); /* Force out any buffered output. */
gdb_flush (gdb_stdout);
if (warning_pre_print)
fputs_unfiltered (warning_pre_print, gdb_stderr);
@ -1721,7 +1721,7 @@ defaulted_query (const char *ctlstr, const char defchar, va_list args)
while (1)
{
wrap_here (""); /* Flush any buffered output */
wrap_here (""); /* Flush any buffered output. */
gdb_flush (gdb_stdout);
if (annotation_level > 1)
@ -1763,7 +1763,7 @@ defaulted_query (const char *ctlstr, const char defchar, va_list args)
retval = def_value;
break;
}
/* Eat rest of input line, to EOF or newline */
/* Eat rest of input line, to EOF or newline. */
if (answer != '\n')
do
{
@ -1897,7 +1897,7 @@ host_char_to_target (struct gdbarch *gdbarch, int c, int *target_c)
int
parse_escape (struct gdbarch *gdbarch, char **string_ptr)
{
int target_char = -2; /* initialize to avoid GCC warnings */
int target_char = -2; /* Initialize to avoid GCC warnings. */
int c = *(*string_ptr)++;
switch (c)
@ -2384,7 +2384,7 @@ wrap_here (char *indent)
right or left justified in the column. Never prints
trailing spaces. String should never be longer than
width. FIXME: this could be useful for the EXAMINE
command, which currently doesn't tabulate very well */
command, which currently doesn't tabulate very well. */
void
puts_filtered_tabular (char *string, int width, int right)
@ -2425,7 +2425,7 @@ puts_filtered_tabular (char *string, int width, int right)
/* Ensure that whatever gets printed next, using the filtered output
commands, starts at the beginning of the line. I.E. if there is
commands, starts at the beginning of the line. I.e. if there is
any pending output for the current line, flush it and start a new
line. Otherwise do nothing. */
@ -2525,12 +2525,12 @@ fputs_maybe_filtered (const char *linebuffer, struct ui_file *stream,
if (lines_printed >= lines_per_page - 1)
prompt_for_continue ();
/* Now output indentation and wrapped string */
/* Now output indentation and wrapped string. */
if (wrap_column)
{
fputs_unfiltered (wrap_indent, stream);
*wrap_pointer = '\0'; /* Null-terminate saved stuff */
fputs_unfiltered (wrap_buffer, stream); /* and eject it */
*wrap_pointer = '\0'; /* Null-terminate saved stuff, */
fputs_unfiltered (wrap_buffer, stream); /* and eject it. */
/* FIXME, this strlen is what prevents wrap_indent from
containing tabs. However, if we recurse to print it
and count its chars, we risk trouble if wrap_indent is
@ -3153,8 +3153,8 @@ When set, debugging messages will be marked with seconds and microseconds."),
#ifdef SIGWINCH_HANDLER_BODY
SIGWINCH_HANDLER_BODY
#endif
/* print routines to handle variable size regs, etc. */
/* temporary storage using circular buffer */
/* Print routines to handle variable size regs, etc. */
/* Temporary storage using circular buffer. */
#define NUMCELLS 16
#define CELLSIZE 50
static char *
@ -3601,7 +3601,7 @@ xfullpath (const char *filename)
dir_name = alloca ((size_t) (base_name - filename + 2));
/* Allocate enough space to store the dir_name + plus one extra
character sometimes needed under Windows (see below), and
then the closing \000 character */
then the closing \000 character. */
strncpy (dir_name, filename, base_name - filename);
dir_name[base_name - filename] = '\000';

View file

@ -250,8 +250,9 @@ v850_use_struct_convention (struct type *type)
return 0;
}
/* The value is a union which contains at least one field which would be
returned in registers according to these rules -> returned in register. */
/* The value is a union which contains at least one field which
would be returned in registers according to these rules ->
returned in register. */
if (TYPE_CODE (type) == TYPE_CODE_UNION)
{
for (i = 0; i < TYPE_NFIELDS (type); ++i)
@ -558,7 +559,7 @@ v850_analyze_prologue (struct gdbarch *gdbarch,
|| (insn & 0xffe0) == 0x0060 /* jmp */
|| (insn & 0x0780) == 0x0580) /* branch */
{
break; /* Ran into end of prologue */
break; /* Ran into end of prologue. */
}
else if ((insn & 0xffe0) == ((E_SP_REGNUM << 11) | 0x0240))
@ -628,7 +629,7 @@ v850_skip_prologue (struct gdbarch *gdbarch, CORE_ADDR pc)
{
CORE_ADDR func_addr, func_end;
/* See what the symbol table says */
/* See what the symbol table says. */
if (find_pc_partial_function (pc, NULL, &func_addr, &func_end))
{
@ -644,7 +645,8 @@ v850_skip_prologue (struct gdbarch *gdbarch, CORE_ADDR pc)
return pc;
}
/* We can't find the start of this function, so there's nothing we can do. */
/* We can't find the start of this function, so there's nothing we
can do. */
return pc;
}

View file

@ -47,8 +47,7 @@ void _initialize_valarith (void);
If the pointer type is void *, then return 1.
If the target type is incomplete, then error out.
This isn't a general purpose function, but just a
helper for value_ptradd.
*/
helper for value_ptradd. */
static LONGEST
find_size_for_pointer_math (struct type *ptr_type)
@ -343,7 +342,7 @@ value_user_defined_cpp_op (struct value **args, int nargs, char *operator,
int i;
arg_types = (struct type **) alloca (nargs * (sizeof (struct type *)));
/* Prepare list of argument types for overload resolution */
/* Prepare list of argument types for overload resolution. */
for (i = 0; i < nargs; i++)
arg_types[i] = value_type (args[i]);
@ -417,7 +416,7 @@ value_x_binop (struct value *arg1, struct value *arg2, enum exp_opcode op,
argvec[2] = arg2;
argvec[3] = 0;
/* make the right function name up */
/* Make the right function name up. */
strcpy (tstr, "operator__");
ptr = tstr + 8;
switch (op)
@ -582,7 +581,7 @@ value_x_unop (struct value *arg1, enum exp_opcode op, enum noside noside)
nargs = 1;
/* make the right function name up */
/* Make the right function name up. */
strcpy (tstr, "operator__");
ptr = tstr + 8;
strcpy (mangle_tstr, "__");
@ -675,8 +674,7 @@ value_x_unop (struct value *arg1, enum exp_opcode op, enum noside noside)
values of length 1.
(3) Character values are also allowed and are treated as character
string values of length 1.
*/
string values of length 1. */
struct value *
value_concat (struct value *arg1, struct value *arg2)
@ -815,6 +813,7 @@ value_concat (struct value *arg1, struct value *arg2)
/* Integer exponentiation: V1**V2, where both arguments are
integers. Requires V1 != 0 if V2 < 0. Returns 1 for 0 ** 0. */
static LONGEST
integer_pow (LONGEST v1, LONGEST v2)
{
@ -827,7 +826,7 @@ integer_pow (LONGEST v1, LONGEST v2)
}
else
{
/* The Russian Peasant's Algorithm */
/* The Russian Peasant's Algorithm. */
LONGEST v;
v = 1;
@ -845,6 +844,7 @@ integer_pow (LONGEST v1, LONGEST v2)
/* Integer exponentiation: V1**V2, where both arguments are
integers. Requires V1 != 0 if V2 < 0. Returns 1 for 0 ** 0. */
static ULONGEST
uinteger_pow (ULONGEST v1, LONGEST v2)
{
@ -857,7 +857,7 @@ uinteger_pow (ULONGEST v1, LONGEST v2)
}
else
{
/* The Russian Peasant's Algorithm */
/* The Russian Peasant's Algorithm. */
ULONGEST v;
v = 1;
@ -1511,7 +1511,7 @@ value_logical_not (struct value *arg1)
}
/* Perform a comparison on two string values (whose content are not
necessarily null terminated) based on their length */
necessarily null terminated) based on their length. */
static int
value_strcmp (struct value *arg1, struct value *arg2)
@ -1617,7 +1617,7 @@ value_equal (struct value *arg1, struct value *arg2)
else
{
error (_("Invalid type combination in equality test."));
return 0; /* For lint -- never reached */
return 0; /* For lint -- never reached. */
}
}
@ -1732,7 +1732,7 @@ value_pos (struct value *arg1)
else
{
error (_("Argument to positive operation not a number."));
return 0; /* For lint -- never reached */
return 0; /* For lint -- never reached. */
}
}
@ -1748,7 +1748,7 @@ value_neg (struct value *arg1)
{
struct value *val = allocate_value (type);
int len = TYPE_LENGTH (type);
gdb_byte decbytes[16]; /* a decfloat is at most 128 bits long */
gdb_byte decbytes[16]; /* a decfloat is at most 128 bits long. */
memcpy (decbytes, value_contents (arg1), len);
@ -1787,7 +1787,7 @@ value_neg (struct value *arg1)
else
{
error (_("Argument to negate operation not a number."));
return 0; /* For lint -- never reached */
return 0; /* For lint -- never reached. */
}
}

View file

@ -1528,8 +1528,7 @@ value_coerce_to_target (struct value *val)
other than array subscripting, where the caller would get back a
value that had an address somewhere before the actual first element
of the array, and the information about the lower bound would be
lost because of the coercion to pointer type.
*/
lost because of the coercion to pointer type. */
struct value *
value_coerce_array (struct value *arg1)
@ -1593,7 +1592,7 @@ value_addr (struct value *arg1)
if (VALUE_LVAL (arg1) != lval_memory)
error (_("Attempt to take address of value not located in memory."));
/* Get target memory address */
/* Get target memory address. */
arg2 = value_from_pointer (lookup_pointer_type (value_type (arg1)),
(value_address (arg1)
+ value_embedded_offset (arg1)));
@ -1667,7 +1666,7 @@ value_ind (struct value *arg1)
arg2 = value_at_lazy (enc_type,
find_function_addr (arg1, NULL));
else
/* Retrieve the enclosing object pointed to */
/* Retrieve the enclosing object pointed to. */
arg2 = value_at_lazy (enc_type,
(value_as_address (arg1)
- value_pointed_to_offset (arg1)));
@ -2073,7 +2072,7 @@ search_struct_method (const char *name, struct value **arg1p,
{
char *t_field_name = TYPE_FN_FIELDLIST_NAME (type, i);
/* FIXME! May need to check for ARM demangling here */
/* FIXME! May need to check for ARM demangling here. */
if (strncmp (t_field_name, "__", 2) == 0 ||
strncmp (t_field_name, "op", 2) == 0 ||
strncmp (t_field_name, "type", 4) == 0)
@ -2286,8 +2285,7 @@ value_struct_elt (struct value **argp, struct value **args,
NUM_FNS is the number of overloaded instances.
BASETYPE is set to the actual type of the subobject where the
method is found.
BOFFSET is the offset of the base subobject where the method is found.
*/
BOFFSET is the offset of the base subobject where the method is found. */
static struct fn_field *
find_method_list (struct value **argp, const char *method,
@ -2358,8 +2356,7 @@ find_method_list (struct value **argp, const char *method,
NUM_FNS is the number of overloaded instances.
BASETYPE is set to the type of the base subobject that defines the
method.
BOFFSET is the offset of the base subobject which defines the method.
*/
BOFFSET is the offset of the base subobject which defines the method. */
struct fn_field *
value_find_oload_method_list (struct value **argp, const char *method,
@ -2429,8 +2426,7 @@ value_find_oload_method_list (struct value **argp, const char *method,
Note: This function does *not* check the value of
overload_resolution. Caller must check it to see whether overload
resolution is permitted.
*/
resolution is permitted. */
int
find_overload_match (struct type **arg_types, int nargs,
@ -3111,7 +3107,7 @@ compare_parameters (struct type *t1, struct type *t2, int skip_artificial)
++start;
}
/* Now compare parameters */
/* Now compare parameters. */
/* Special case: a method taking void. T1 will contain no
non-artificial fields, and T2 will contain TYPE_CODE_VOID. */
@ -3464,7 +3460,7 @@ value_full_object (struct value *argp,
return argp;
}
/* Check if object is in memory */
/* Check if object is in memory. */
if (VALUE_LVAL (argp) != lval_memory)
{
warning (_("Couldn't retrieve complete object of RTTI "

View file

@ -570,10 +570,10 @@ print_longest (struct ui_file *stream, int format, int use_c_format,
int
longest_to_int (LONGEST arg)
{
/* Let the compiler do the work */
/* Let the compiler do the work. */
int rtnval = (int) arg;
/* Check for overflows or underflows */
/* Check for overflows or underflows. */
if (sizeof (LONGEST) > sizeof (int))
{
if (rtnval != arg)
@ -685,8 +685,8 @@ print_binary_chars (struct ui_file *stream, const gdb_byte *valaddr,
int b;
/* Declared "int" so it will be signed.
* This ensures that right shift will shift in zeros.
*/
This ensures that right shift will shift in zeros. */
const int mask = 0x080;
/* FIXME: We should be not printing leading zeroes in most cases. */
@ -698,8 +698,8 @@ print_binary_chars (struct ui_file *stream, const gdb_byte *valaddr,
p++)
{
/* Every byte has 8 binary characters; peel off
* and print from the MSB end.
*/
and print from the MSB end. */
for (i = 0; i < (BITS_IN_BYTES * sizeof (*p)); i++)
{
if (*p & (mask >> i))
@ -731,8 +731,8 @@ print_binary_chars (struct ui_file *stream, const gdb_byte *valaddr,
}
/* VALADDR points to an integer of LEN bytes.
* Print it in octal on stream or format it in buf.
*/
Print it in octal on stream or format it in buf. */
void
print_octal_chars (struct ui_file *stream, const gdb_byte *valaddr,
unsigned len, enum bfd_endian byte_order)
@ -772,8 +772,8 @@ print_octal_chars (struct ui_file *stream, const gdb_byte *valaddr,
#define LOW_TWO 0007
/* For 32 we start in cycle 2, with two bits and one bit carry;
* for 64 in cycle in cycle 1, with one bit and a two bit carry.
*/
for 64 in cycle in cycle 1, with one bit and a two bit carry. */
cycle = (len * BITS_IN_BYTES) % BITS_IN_OCTAL;
carry = 0;
@ -787,8 +787,8 @@ print_octal_chars (struct ui_file *stream, const gdb_byte *valaddr,
switch (cycle)
{
case 0:
/* No carry in, carry out two bits.
*/
/* No carry in, carry out two bits. */
octa1 = (HIGH_ZERO & *p) >> 5;
octa2 = (LOW_ZERO & *p) >> 2;
carry = (CARRY_ZERO & *p);
@ -797,8 +797,8 @@ print_octal_chars (struct ui_file *stream, const gdb_byte *valaddr,
break;
case 1:
/* Carry in two bits, carry out one bit.
*/
/* Carry in two bits, carry out one bit. */
octa1 = (carry << 1) | ((HIGH_ONE & *p) >> 7);
octa2 = (MID_ONE & *p) >> 4;
octa3 = (LOW_ONE & *p) >> 1;
@ -809,8 +809,8 @@ print_octal_chars (struct ui_file *stream, const gdb_byte *valaddr,
break;
case 2:
/* Carry in one bit, no carry out.
*/
/* Carry in one bit, no carry out. */
octa1 = (carry << 2) | ((HIGH_TWO & *p) >> 6);
octa2 = (MID_TWO & *p) >> 3;
octa3 = (LOW_TWO & *p);
@ -838,6 +838,7 @@ print_octal_chars (struct ui_file *stream, const gdb_byte *valaddr,
{
case 0:
/* Carry out, no carry in */
octa1 = (HIGH_ZERO & *p) >> 5;
octa2 = (LOW_ZERO & *p) >> 2;
carry = (CARRY_ZERO & *p);
@ -847,6 +848,7 @@ print_octal_chars (struct ui_file *stream, const gdb_byte *valaddr,
case 1:
/* Carry in, carry out */
octa1 = (carry << 1) | ((HIGH_ONE & *p) >> 7);
octa2 = (MID_ONE & *p) >> 4;
octa3 = (LOW_ONE & *p) >> 1;
@ -858,6 +860,7 @@ print_octal_chars (struct ui_file *stream, const gdb_byte *valaddr,
case 2:
/* Carry in, no carry out */
octa1 = (carry << 2) | ((HIGH_TWO & *p) >> 6);
octa2 = (MID_TWO & *p) >> 3;
octa3 = (LOW_TWO & *p);
@ -879,8 +882,8 @@ print_octal_chars (struct ui_file *stream, const gdb_byte *valaddr,
}
/* VALADDR points to an integer of LEN bytes.
* Print it in decimal on stream or format it in buf.
*/
Print it in decimal on stream or format it in buf. */
void
print_decimal_chars (struct ui_file *stream, const gdb_byte *valaddr,
unsigned len, enum bfd_endian byte_order)
@ -901,8 +904,8 @@ print_decimal_chars (struct ui_file *stream, const gdb_byte *valaddr,
int flip;
/* Base-ten number is less than twice as many digits
* as the base 16 number, which is 2 digits per byte.
*/
as the base 16 number, which is 2 digits per byte. */
decimal_len = len * 2 * 2;
digits = xmalloc (decimal_len);
@ -947,15 +950,15 @@ print_decimal_chars (struct ui_file *stream, const gdb_byte *valaddr,
*/
if (flip == 0)
{
/* Take top nibble.
*/
/* Take top nibble. */
digits[0] += HIGH_NIBBLE (*p);
flip = 1;
}
else
{
/* Take low nibble and bump our pointer "p".
*/
/* Take low nibble and bump our pointer "p". */
digits[0] += LOW_NIBBLE (*p);
if (byte_order == BFD_ENDIAN_BIG)
p++;
@ -1001,8 +1004,8 @@ print_decimal_chars (struct ui_file *stream, const gdb_byte *valaddr,
}
/* Ok, now "digits" is the decimal representation, with
* the "decimal_digits" actual digits. Print!
*/
the "decimal_digits" actual digits. Print! */
for (i = decimal_digits - 1; i >= 0; i--)
{
fprintf_filtered (stream, "%1d", digits[i]);
@ -1102,8 +1105,7 @@ maybe_print_array_index (struct type *index_type, LONGEST index,
(FIXME?) Assumes array element separator is a comma, which is correct
for all languages currently handled.
(FIXME?) Some languages have a notation for repeated array elements,
perhaps we should try to use that notation when appropriate.
*/
perhaps we should try to use that notation when appropriate. */
void
val_print_array_elements (struct type *type, const gdb_byte *valaddr,
@ -1392,7 +1394,7 @@ val_print_string (struct type *elttype, const char *encoding,
{
int force_ellipsis = 0; /* Force ellipsis to be printed if nonzero. */
int errcode; /* Errno returned from bad reads. */
int found_nul; /* Non-zero if we found the nul char */
int found_nul; /* Non-zero if we found the nul char. */
unsigned int fetchlimit; /* Maximum number of chars to print. */
int bytes_read;
gdb_byte *buffer = NULL; /* Dynamically growable fetch buffer. */
@ -1638,7 +1640,7 @@ _initialize_valprint (void)
_("Generic command for setting how things print."),
&setprintlist, "set print ", 0, &setlist);
add_alias_cmd ("p", "print", no_class, 1, &setlist);
/* prefer set print to set prompt */
/* Prefer set print to set prompt. */
add_alias_cmd ("pr", "print", no_class, 1, &setlist);
add_prefix_cmd ("print", no_class, show_print,

View file

@ -239,7 +239,7 @@ struct value_history_chunk
static struct value_history_chunk *value_history_chain;
static int value_history_count; /* Abs number of last entry stored */
static int value_history_count; /* Abs number of last entry stored. */
/* List of all value objects currently allocated
@ -1943,7 +1943,7 @@ value_static_field (struct type *type, int fieldno)
if (sym == NULL)
{
/* With some compilers, e.g. HP aCC, static data members are
reported as non-debuggable symbols */
reported as non-debuggable symbols. */
struct minimal_symbol *msym = lookup_minimal_symbol (phys_name,
NULL, NULL);
@ -2098,8 +2098,7 @@ value_field (struct value *arg1, int fieldno)
J is an index into F which provides the desired method.
We only use the symbol for its address, so be happy with either a
full symbol or a minimal symbol.
*/
full symbol or a minimal symbol. */
struct value *
value_fn_field (struct value **arg1p, struct fn_field *f,
@ -2149,8 +2148,7 @@ value_fn_field (struct value **arg1p, struct fn_field *f,
value_addr (*arg1p)));
/* Move the `this' pointer according to the offset.
VALUE_OFFSET (*arg1p) += offset;
*/
VALUE_OFFSET (*arg1p) += offset; */
}
return v;

View file

@ -53,11 +53,11 @@ show_varobjdebug (struct ui_file *file, int from_tty,
fprintf_filtered (file, _("Varobj debugging is %s.\n"), value);
}
/* String representations of gdb's format codes */
/* String representations of gdb's format codes. */
char *varobj_format_string[] =
{ "natural", "binary", "decimal", "hexadecimal", "octal" };
/* String representations of gdb's known languages */
/* String representations of gdb's known languages. */
char *varobj_language_string[] = { "unknown", "C", "C++", "Java" };
/* True if we want to allow Python-based pretty-printing. */
@ -79,7 +79,7 @@ struct varobj_root
/* Alloc'd expression for this parent. */
struct expression *exp;
/* Block for which this expression is valid */
/* Block for which this expression is valid. */
struct block *valid_block;
/* The frame for this expression. This field is set iff valid_block is
@ -95,14 +95,14 @@ struct varobj_root
/* If 1, the -var-update always recomputes the value in the
current thread and frame. Otherwise, variable object is
always updated in the specific scope/thread/frame */
always updated in the specific scope/thread/frame. */
int floating;
/* Flag that indicates validity: set to 0 when this varobj_root refers
to symbols that do not exist anymore. */
int is_valid;
/* Language info for this variable and its children */
/* Language info for this variable and its children. */
struct language_specific *lang;
/* The varobj for this root node. */
@ -118,10 +118,10 @@ struct varobj_root
struct varobj
{
/* Alloc'd name of the variable for this object.. If this variable is a
/* Alloc'd name of the variable for this object. If this variable is a
child, then this name will be the child's source name.
(bar, not foo.bar) */
/* NOTE: This is the "expression" */
(bar, not foo.bar). */
/* NOTE: This is the "expression". */
char *name;
/* Alloc'd expression for this child. Can be used to create a
@ -132,7 +132,7 @@ struct varobj
convenience when constructing this object's children. */
char *obj_name;
/* Index of this variable in its parent or -1 */
/* Index of this variable in its parent or -1. */
int index;
/* The type of this variable. This can be NULL
@ -146,7 +146,7 @@ struct varobj
the value is either NULL, or not lazy. */
struct value *value;
/* The number of (immediate) children this variable has */
/* The number of (immediate) children this variable has. */
int num_children;
/* If this object is a child, this points to its immediate parent. */
@ -161,13 +161,14 @@ struct varobj
can avoid that. */
int children_requested;
/* Description of the root variable. Points to root variable for children. */
/* Description of the root variable. Points to root variable for
children. */
struct varobj_root *root;
/* The format of the output for this object */
/* The format of the output for this object. */
enum varobj_display_formats format;
/* Was this variable updated via a varobj_set_value operation */
/* Was this variable updated via a varobj_set_value operation. */
int updated;
/* Last print value. */
@ -364,7 +365,7 @@ static char *java_value_of_variable (struct varobj *var,
struct language_specific
{
/* The language of this variable */
/* The language of this variable. */
enum varobj_languages language;
/* The number of children of PARENT. */
@ -396,7 +397,7 @@ struct language_specific
/* Array of known source language routines. */
static struct language_specific languages[vlang_end] = {
/* Unknown (try treating as C */
/* Unknown (try treating as C). */
{
vlang_unknown,
c_number_of_children,
@ -445,7 +446,7 @@ static struct language_specific languages[vlang_end] = {
java_value_of_variable}
};
/* A little convenience enum for dealing with C++/Java */
/* A little convenience enum for dealing with C++/Java. */
enum vsections
{
v_public = 0, v_private, v_protected
@ -453,17 +454,17 @@ enum vsections
/* Private data */
/* Mappings of varobj_display_formats enums to gdb's format codes */
/* Mappings of varobj_display_formats enums to gdb's format codes. */
static int format_code[] = { 0, 't', 'd', 'x', 'o' };
/* Header of the list of root variable objects */
/* Header of the list of root variable objects. */
static struct varobj_root *rootlist;
/* Prime number indicating the number of buckets in the hash table */
/* A prime large enough to avoid too many colisions */
/* Prime number indicating the number of buckets in the hash table. */
/* A prime large enough to avoid too many colisions. */
#define VAROBJ_TABLE_SIZE 227
/* Pointer to the varobj hash table (built at run time) */
/* Pointer to the varobj hash table (built at run time). */
static struct vlist **varobj_table;
/* Is the variable X one of our "fake" children? */
@ -489,7 +490,7 @@ varobj_ensure_python_env (struct varobj *var)
}
#endif
/* Creates a varobj (not its children) */
/* Creates a varobj (not its children). */
/* Return the full FRAME which corresponds to the given CORE_ADDR
or NULL if no FRAME on the chain corresponds to CORE_ADDR. */
@ -548,7 +549,7 @@ varobj_create (char *objname,
if (has_stack_frames ())
{
/* Allow creator to specify context of variable */
/* Allow creator to specify context of variable. */
if ((type == USE_CURRENT_FRAME) || (type == USE_SELECTED_FRAME))
fi = get_selected_frame (NULL);
else
@ -564,7 +565,7 @@ varobj_create (char *objname,
else
fi = NULL;
/* frame = -2 means always use selected frame */
/* frame = -2 means always use selected frame. */
if (type == USE_SELECTED_FRAME)
var->root->floating = 1;
@ -617,7 +618,7 @@ varobj_create (char *objname,
/* We definitely need to catch errors here.
If evaluate_expression succeeds we got the value we wanted.
But if it fails, we still go on with a call to evaluate_type() */
But if it fails, we still go on with a call to evaluate_type(). */
if (!gdb_evaluate_expression (var->root->exp, &value))
{
/* Error getting the value. Try to at least get the
@ -635,10 +636,10 @@ varobj_create (char *objname,
lang = variable_language (var);
var->root->lang = &languages[lang];
/* Set ourselves as our root */
/* Set ourselves as our root. */
var->root->rootvar = var;
/* Reset the selected frame */
/* Reset the selected frame. */
if (frame_id_p (old_id))
select_frame (frame_find_by_id (old_id));
}
@ -651,7 +652,7 @@ varobj_create (char *objname,
var->obj_name = xstrdup (objname);
/* If a varobj name is duplicated, the install will fail so
we must clenup */
we must cleanup. */
if (!install_variable (var))
{
do_cleanups (old_chain);
@ -663,7 +664,7 @@ varobj_create (char *objname,
return var;
}
/* Generates an unique name that can be used for a varobj */
/* Generates an unique name that can be used for a varobj. */
char *
varobj_gen_name (void)
@ -671,7 +672,7 @@ varobj_gen_name (void)
static int id = 0;
char *obj_name;
/* generate a name for this object */
/* Generate a name for this object. */
id++;
obj_name = xstrprintf ("var%d", id);
@ -704,7 +705,7 @@ varobj_get_handle (char *objname)
return cv->var;
}
/* Given the handle, return the name of the object */
/* Given the handle, return the name of the object. */
char *
varobj_get_objname (struct varobj *var)
@ -712,7 +713,7 @@ varobj_get_objname (struct varobj *var)
return var->obj_name;
}
/* Given the handle, return the expression represented by the object */
/* Given the handle, return the expression represented by the object. */
char *
varobj_get_expression (struct varobj *var)
@ -723,7 +724,7 @@ varobj_get_expression (struct varobj *var)
/* Deletes a varobj and all its children if only_children == 0,
otherwise deletes only the children; returns a malloc'ed list of
all the (malloc'ed) names of the variables that have been deleted
(NULL terminated) */
(NULL terminated). */
int
varobj_delete (struct varobj *var, char ***dellist, int only_children)
@ -733,17 +734,17 @@ varobj_delete (struct varobj *var, char ***dellist, int only_children)
struct cpstack *result = NULL;
char **cp;
/* Initialize a stack for temporary results */
/* Initialize a stack for temporary results. */
cppush (&result, NULL);
if (only_children)
/* Delete only the variable children */
/* Delete only the variable children. */
delcount = delete_variable (&result, var, 1 /* only the children */ );
else
/* Delete the variable and all its children */
/* Delete the variable and all its children. */
delcount = delete_variable (&result, var, 0 /* parent+children */ );
/* We may have been asked to return a list of what has been deleted */
/* We may have been asked to return a list of what has been deleted. */
if (dellist != NULL)
{
*dellist = xmalloc ((delcount + 1) * sizeof (char *));
@ -788,7 +789,7 @@ instantiate_pretty_printer (PyObject *constructor, struct value *value)
#endif
/* Set/Get variable object display format */
/* Set/Get variable object display format. */
enum varobj_display_formats
varobj_set_display_format (struct varobj *var,
@ -1119,7 +1120,7 @@ varobj_get_num_children (struct varobj *var)
}
/* Creates a list of the immediate children of a variable object;
the return code is the number of such children or -1 on error */
the return code is the number of such children or -1 on error. */
VEC (varobj_p)*
varobj_list_children (struct varobj *var, int *from, int *to)
@ -1187,7 +1188,7 @@ varobj_add_child (struct varobj *var, const char *name, struct value *value)
#endif /* HAVE_PYTHON */
/* Obtain the type of an object Variable as a string similar to the one gdb
prints on the console */
prints on the console. */
char *
varobj_get_type (struct varobj *var)
@ -1238,7 +1239,7 @@ varobj_get_attributes (struct varobj *var)
int attributes = 0;
if (varobj_editable_p (var))
/* FIXME: define masks for attributes */
/* FIXME: define masks for attributes. */
attributes |= 0x00000001; /* Editable */
return attributes;
@ -1264,8 +1265,8 @@ varobj_get_value (struct varobj *var)
}
/* Set the value of an object variable (if it is editable) to the
value of the given expression */
/* Note: Invokes functions that can call error() */
value of the given expression. */
/* Note: Invokes functions that can call error(). */
int
varobj_set_value (struct varobj *var, char *expression)
@ -1282,7 +1283,7 @@ varobj_set_value (struct varobj *var, char *expression)
gdb_assert (varobj_editable_p (var));
input_radix = 10; /* ALWAYS reset to decimal temporarily */
input_radix = 10; /* ALWAYS reset to decimal temporarily. */
exp = parse_exp_1 (&s, 0, 0);
if (!gdb_evaluate_expression (exp, &value))
{
@ -1437,12 +1438,12 @@ install_new_value_visualizer (struct varobj *var)
this is the first assignement after the variable object was just
created, or changed type. In that case, just assign the value
and return 0.
Otherwise, assign the new value, and return 1 if the value is different
from the current one, 0 otherwise. The comparison is done on textual
representation of value. Therefore, some types need not be compared. E.g.
for structures the reported value is always "{...}", so no comparison is
necessary here. If the old value was NULL and new one is not, or vice versa,
we always return 1.
Otherwise, assign the new value, and return 1 if the value is
different from the current one, 0 otherwise. The comparison is
done on textual representation of value. Therefore, some types
need not be compared. E.g. for structures the reported value is
always "{...}", so no comparison is necessary here. If the old
value was NULL and new one is not, or vice versa, we always return 1.
The VALUE parameter should not be released -- the function will
take care of releasing it when needed. */
@ -1903,10 +1904,10 @@ delete_variable (struct cpstack **resultp, struct varobj *var,
return delcount;
}
/* Delete the variable object VAR and its children */
/* Delete the variable object VAR and its children. */
/* IMPORTANT NOTE: If we delete a variable which is a child
and the parent is not removed we dump core. It must be always
initially called with remove_from_parent_p set */
initially called with remove_from_parent_p set. */
static void
delete_variable_1 (struct cpstack **resultp, int *delcountp,
struct varobj *var, int only_children_p,
@ -1927,11 +1928,11 @@ delete_variable_1 (struct cpstack **resultp, int *delcountp,
}
VEC_free (varobj_p, var->children);
/* if we were called to delete only the children we are done here */
/* if we were called to delete only the children we are done here. */
if (only_children_p)
return;
/* Otherwise, add it to the list of deleted ones and proceed to do so */
/* Otherwise, add it to the list of deleted ones and proceed to do so. */
/* If the name is null, this is a temporary variable, that has not
yet been installed, don't report it, it belongs to the caller... */
if (var->obj_name != NULL)
@ -1940,11 +1941,11 @@ delete_variable_1 (struct cpstack **resultp, int *delcountp,
*delcountp = *delcountp + 1;
}
/* If this variable has a parent, remove it from its parent's list */
/* If this variable has a parent, remove it from its parent's list. */
/* OPTIMIZATION: if the parent of this variable is also being deleted,
(as indicated by remove_from_parent_p) we don't bother doing an
expensive list search to find the element to remove when we are
discarding the list afterwards */
discarding the list afterwards. */
if ((remove_from_parent_p) && (var->parent != NULL))
{
VEC_replace (varobj_p, var->parent->children, var->index, NULL);
@ -1953,7 +1954,7 @@ delete_variable_1 (struct cpstack **resultp, int *delcountp,
if (var->obj_name != NULL)
uninstall_variable (var);
/* Free memory associated with this variable */
/* Free memory associated with this variable. */
free_variable (var);
}
@ -1979,16 +1980,16 @@ install_variable (struct varobj *var)
if (cv != NULL)
error (_("Duplicate variable object name"));
/* Add varobj to hash table */
/* Add varobj to hash table. */
newvl = xmalloc (sizeof (struct vlist));
newvl->next = *(varobj_table + index);
newvl->var = var;
*(varobj_table + index) = newvl;
/* If root, add varobj to root list */
/* If root, add varobj to root list. */
if (is_root_p (var))
{
/* Add to list of root variables */
/* Add to list of root variables. */
if (rootlist == NULL)
var->root->next = NULL;
else
@ -2011,7 +2012,7 @@ uninstall_variable (struct varobj *var)
unsigned int index = 0;
unsigned int i = 1;
/* Remove varobj from hash table */
/* Remove varobj from hash table. */
for (chp = var->obj_name; *chp; chp++)
{
index = (index + (i++ * (unsigned int) *chp)) % VAROBJ_TABLE_SIZE;
@ -2043,10 +2044,10 @@ uninstall_variable (struct varobj *var)
xfree (cv);
/* If root, remove varobj from root list */
/* If root, remove varobj from root list. */
if (is_root_p (var))
{
/* Remove from list of root variables */
/* Remove from list of root variables. */
if (rootlist == var->root)
rootlist = var->root->next;
else
@ -2074,7 +2075,7 @@ uninstall_variable (struct varobj *var)
}
/* Create and install a child of the parent of the given name */
/* Create and install a child of the parent of the given name. */
static struct varobj *
create_child (struct varobj *parent, int index, char *name)
{
@ -2091,7 +2092,7 @@ create_child_with_value (struct varobj *parent, int index, const char *name,
child = new_variable ();
/* name is allocated by name_of_child */
/* Name is allocated by name_of_child. */
/* FIXME: xstrdup should not be here. */
child->name = xstrdup (name);
child->index = index;
@ -2121,7 +2122,7 @@ create_child_with_value (struct varobj *parent, int index, const char *name,
* Miscellaneous utility functions.
*/
/* Allocate memory and initialize a new variable */
/* Allocate memory and initialize a new variable. */
static struct varobj *
new_variable (void)
{
@ -2154,7 +2155,7 @@ new_variable (void)
return var;
}
/* Allocate memory and initialize a new root variable */
/* Allocate memory and initialize a new root variable. */
static struct varobj *
new_root_variable (void)
{
@ -2290,7 +2291,7 @@ variable_default_display (struct varobj *var)
return FORMAT_NATURAL;
}
/* FIXME: The following should be generic for any pointer */
/* FIXME: The following should be generic for any pointer. */
static void
cppush (struct cpstack **pstack, char *name)
{
@ -2302,7 +2303,7 @@ cppush (struct cpstack **pstack, char *name)
*pstack = s;
}
/* FIXME: The following should be generic for any pointer */
/* FIXME: The following should be generic for any pointer. */
static char *
cppop (struct cpstack **pstack)
{
@ -2759,7 +2760,7 @@ c_number_of_children (struct varobj *var)
We can show char* so we allow it to be dereferenced. If you decide
to test for it, please mind that a little magic is necessary to
properly identify it: char* has TYPE_CODE == TYPE_CODE_INT and
TYPE_NAME == "char" */
TYPE_NAME == "char". */
if (TYPE_CODE (target) == TYPE_CODE_FUNC
|| TYPE_CODE (target) == TYPE_CODE_VOID)
children = 0;
@ -2768,7 +2769,7 @@ c_number_of_children (struct varobj *var)
break;
default:
/* Other types have no children */
/* Other types have no children. */
break;
}
@ -2925,7 +2926,7 @@ c_describe_child (struct varobj *parent, int index,
break;
default:
/* This should not happen */
/* This should not happen. */
if (cname)
*cname = xstrdup ("???");
if (cfull_expression)
@ -2985,7 +2986,7 @@ c_value_of_root (struct varobj **var_handle)
/* Only root variables can be updated... */
if (!is_root_p (var))
/* Not a root var */
/* Not a root var. */
return NULL;
back_to = make_cleanup_restore_current_thread ();
@ -3096,7 +3097,7 @@ c_value_of_variable (struct varobj *var, enum varobj_display_formats format)
gdb_assert (!value_lazy (var->value));
/* If the specified format is the current one,
we can reuse print_value */
we can reuse print_value. */
if (format == var->format)
return xstrdup (var->print_value);
else
@ -3136,11 +3137,11 @@ cplus_number_of_children (struct varobj *var)
if (kids[v_protected] != 0)
children++;
/* Add any baseclasses */
/* Add any baseclasses. */
children += TYPE_N_BASECLASSES (type);
dont_know = 0;
/* FIXME: save children in var */
/* FIXME: save children in var. */
}
}
else
@ -3375,7 +3376,7 @@ cplus_describe_child (struct varobj *parent, int index,
access = "protected";
break;
case 2:
/* Must be protected */
/* Must be protected. */
access = "protected";
break;
default:

View file

@ -34,9 +34,9 @@ enum varobj_display_formats
enum varobj_type
{
USE_SPECIFIED_FRAME, /* Use the frame passed to varobj_create */
USE_CURRENT_FRAME, /* Use the current frame */
USE_SELECTED_FRAME /* Always reevaluate in selected frame */
USE_SPECIFIED_FRAME, /* Use the frame passed to varobj_create. */
USE_CURRENT_FRAME, /* Use the current frame. */
USE_SELECTED_FRAME /* Always reevaluate in selected frame. */
};
/* Enumerator describing if a variable object is in scope. */
@ -50,7 +50,7 @@ enum varobj_scope_status
will. */
};
/* String representations of gdb's format codes (defined in varobj.c) */
/* String representations of gdb's format codes (defined in varobj.c). */
extern char *varobj_format_string[];
/* Languages supported by this variable objects system. */
@ -59,10 +59,10 @@ enum varobj_languages
vlang_unknown = 0, vlang_c, vlang_cplus, vlang_java, vlang_end
};
/* String representations of gdb's known languages (defined in varobj.c) */
/* String representations of gdb's known languages (defined in varobj.c). */
extern char *varobj_language_string[];
/* Struct thar describes a variable object instance */
/* Struct thar describes a variable object instance. */
struct varobj;
typedef struct varobj *varobj_p;
@ -77,7 +77,7 @@ typedef struct varobj_update_result_t
enum varobj_scope_status status;
/* This variable is used internally by varobj_update to indicate if the
new value of varobj is already computed and installed, or has to
be yet installed. Don't use this outside varobj.c */
be yet installed. Don't use this outside varobj.c. */
int value_installed;
/* This will be non-NULL when new children were added to the varobj.

View file

@ -89,7 +89,8 @@ static BOOL WINAPI (*GetModuleInformation) (HANDLE, HMODULE, LPMODULEINFO,
DWORD);
static BOOL WINAPI (*LookupPrivilegeValueA)(LPCSTR, LPCSTR, PLUID);
static BOOL WINAPI (*OpenProcessToken)(HANDLE, DWORD, PHANDLE);
static BOOL WINAPI (*GetCurrentConsoleFont) (HANDLE, BOOL, CONSOLE_FONT_INFO *);
static BOOL WINAPI (*GetCurrentConsoleFont) (HANDLE, BOOL,
CONSOLE_FONT_INFO *);
static COORD WINAPI (*GetConsoleFontSize) (HANDLE, DWORD);
static struct target_ops windows_ops;
@ -113,7 +114,8 @@ static struct target_ops windows_ops;
# if CYGWIN_VERSION_DLL_MAKE_COMBINED(CYGWIN_VERSION_API_MAJOR,CYGWIN_VERSION_API_MINOR) >= 181
# define __USEWIDE
typedef wchar_t cygwin_buf_t;
static DWORD WINAPI (*GetModuleFileNameEx) (HANDLE, HMODULE, LPWSTR, DWORD);
static DWORD WINAPI (*GetModuleFileNameEx) (HANDLE, HMODULE,
LPWSTR, DWORD);
# define STARTUPINFO STARTUPINFOW
# define CreateProcess CreateProcessW
# define GetModuleFileNameEx_name "GetModuleFileNameExW"
@ -135,8 +137,10 @@ static struct target_ops windows_ops;
# endif
#endif
static int have_saved_context; /* True if we've saved context from a cygwin signal. */
static CONTEXT saved_context; /* Containes the saved context from a cygwin signal. */
static int have_saved_context; /* True if we've saved context from a
cygwin signal. */
static CONTEXT saved_context; /* Containes the saved context from a
cygwin signal. */
/* If we're not using the old Cygwin header file set, define the
following which never should have been in the generic Win32 API
@ -186,7 +190,7 @@ static void cygwin_set_dr7 (unsigned long val);
static unsigned long cygwin_get_dr6 (void);
static enum target_signal last_sig = TARGET_SIGNAL_0;
/* Set if a signal was received from the debugged process */
/* Set if a signal was received from the debugged process. */
/* Thread information structure used to track information that is
not available in gdb's thread structure. */
@ -380,7 +384,7 @@ windows_init_thread_list (void)
thread_head.next = NULL;
}
/* Delete a thread from the list of threads */
/* Delete a thread from the list of threads. */
static void
windows_delete_thread (ptid_t ptid)
{
@ -418,17 +422,19 @@ do_windows_fetch_inferior_registers (struct regcache *regcache, int r)
if (!current_thread)
return; /* Windows sometimes uses a non-existent thread id in its
events */
events. */
if (current_thread->reload_context)
{
#ifdef __COPY_CONTEXT_SIZE
if (have_saved_context)
{
/* Lie about where the program actually is stopped since cygwin has informed us that
we should consider the signal to have occurred at another location which is stored
in "saved_context. */
memcpy (&current_thread->context, &saved_context, __COPY_CONTEXT_SIZE);
/* Lie about where the program actually is stopped since
cygwin has informed us that we should consider the signal
to have occurred at another location which is stored in
"saved_context. */
memcpy (&current_thread->context, &saved_context,
__COPY_CONTEXT_SIZE);
have_saved_context = 0;
}
else
@ -438,7 +444,8 @@ do_windows_fetch_inferior_registers (struct regcache *regcache, int r)
th->context.ContextFlags = CONTEXT_DEBUGGER_DR;
GetThreadContext (th->h, &th->context);
/* Copy dr values from that thread.
But only if there were not modified since last stop. PR gdb/2388 */
But only if there were not modified since last stop.
PR gdb/2388 */
if (!debug_registers_changed)
{
dr[0] = th->context.Dr0;
@ -477,7 +484,7 @@ windows_fetch_inferior_registers (struct target_ops *ops,
{
current_thread = thread_rec (ptid_get_tid (inferior_ptid), TRUE);
/* Check if current_thread exists. Windows sometimes uses a non-existent
thread id in its events */
thread id in its events. */
if (current_thread)
do_windows_fetch_inferior_registers (regcache, r);
}
@ -486,7 +493,7 @@ static void
do_windows_store_inferior_registers (const struct regcache *regcache, int r)
{
if (!current_thread)
/* Windows sometimes uses a non-existent thread id in its events */;
/* Windows sometimes uses a non-existent thread id in its events. */;
else if (r >= 0)
regcache_raw_collect (regcache, r,
((char *) &current_thread->context) + mappings[r]);
@ -497,14 +504,14 @@ do_windows_store_inferior_registers (const struct regcache *regcache, int r)
}
}
/* Store a new register value into the current thread context */
/* Store a new register value into the current thread context. */
static void
windows_store_inferior_registers (struct target_ops *ops,
struct regcache *regcache, int r)
{
current_thread = thread_rec (ptid_get_tid (inferior_ptid), TRUE);
/* Check if current_thread exists. Windows sometimes uses a non-existent
thread id in its events */
thread id in its events. */
if (current_thread)
do_windows_store_inferior_registers (regcache, r);
}
@ -519,7 +526,8 @@ get_module_name (LPVOID base_address, char *dll_name_ret)
MODULEINFO mi;
int i;
HMODULE dh_buf[1];
HMODULE *DllHandle = dh_buf; /* Set to temporary storage for initial query */
HMODULE *DllHandle = dh_buf; /* Set to temporary storage for
initial query. */
DWORD cbNeeded;
#ifdef __CYGWIN__
cygwin_buf_t pathbuf[__PMAX]; /* Temporary storage prior to converting to
@ -529,33 +537,34 @@ get_module_name (LPVOID base_address, char *dll_name_ret)
#endif
cbNeeded = 0;
/* Find size of buffer needed to handle list of modules loaded in inferior */
/* Find size of buffer needed to handle list of modules loaded in
inferior. */
if (!EnumProcessModules (current_process_handle, DllHandle,
sizeof (HMODULE), &cbNeeded) || !cbNeeded)
goto failed;
/* Allocate correct amount of space for module list */
/* Allocate correct amount of space for module list. */
DllHandle = (HMODULE *) alloca (cbNeeded);
if (!DllHandle)
goto failed;
/* Get the list of modules */
/* Get the list of modules. */
if (!EnumProcessModules (current_process_handle, DllHandle, cbNeeded,
&cbNeeded))
goto failed;
for (i = 0; i < (int) (cbNeeded / sizeof (HMODULE)); i++)
{
/* Get information on this module */
/* Get information on this module. */
if (!GetModuleInformation (current_process_handle, DllHandle[i],
&mi, sizeof (mi)))
error (_("Can't get module info"));
if (!base_address || mi.lpBaseOfDll == base_address)
{
/* Try to find the name of the given module */
/* Try to find the name of the given module. */
#ifdef __CYGWIN__
/* Cygwin prefers that the path be in /x/y/z format */
/* Cygwin prefers that the path be in /x/y/z format. */
len = GetModuleFileNameEx (current_process_handle,
DllHandle[i], pathbuf, __PMAX);
if (len == 0)
@ -567,7 +576,8 @@ get_module_name (LPVOID base_address, char *dll_name_ret)
len = GetModuleFileNameEx (current_process_handle,
DllHandle[i], dll_name_ret, __PMAX);
if (len == 0)
error (_("Error getting dll name: %u."), (unsigned) GetLastError ());
error (_("Error getting dll name: %u."),
(unsigned) GetLastError ());
#endif
return 1; /* success */
}
@ -579,7 +589,7 @@ failed:
}
/* Encapsulate the information required in a call to
symbol_file_add_args */
symbol_file_add_args. */
struct safe_symbol_file_add_args
{
char *name;
@ -612,7 +622,7 @@ safe_symbol_file_add_stub (void *argv)
#undef p
}
/* Restore gdb's stderr after calling symbol_file_add */
/* Restore gdb's stderr after calling symbol_file_add. */
static void
safe_symbol_file_add_cleanup (void *p)
{
@ -752,7 +762,8 @@ windows_make_so (const char *name, LPVOID load_addr)
/* The symbols in a dll are offset by 0x1000, which is the the
offset from 0 of the first byte in an image - because of the
file header and the section alignment. */
cygwin_load_start = (CORE_ADDR) (uintptr_t) ((char *) load_addr + 0x1000);
cygwin_load_start = (CORE_ADDR) (uintptr_t) ((char *)
load_addr + 0x1000);
cygwin_load_end = cygwin_load_start + bfd_section_size (abfd, text);
bfd_close (abfd);
@ -784,11 +795,12 @@ get_image_name (HANDLE h, void *address, int unicode)
/* See if we could read the address of a string, and that the
address isn't null. */
if (!ReadProcessMemory (h, address, &address_ptr, sizeof (address_ptr), &done)
if (!ReadProcessMemory (h, address, &address_ptr,
sizeof (address_ptr), &done)
|| done != sizeof (address_ptr) || !address_ptr)
return NULL;
/* Find the length of the string */
/* Find the length of the string. */
while (ReadProcessMemory (h, address_ptr + len++ * size, &b, size, &done)
&& (b[0] != 0 || b[size - 1] != 0) && done == size)
continue;
@ -927,7 +939,8 @@ handle_output_debug_string (struct target_waitstatus *ourstatus)
&s, 1024, 0)
|| !s || !*s)
/* nothing to do */;
else if (strncmp (s, _CYGWIN_SIGNAL_STRING, sizeof (_CYGWIN_SIGNAL_STRING) - 1) != 0)
else if (strncmp (s, _CYGWIN_SIGNAL_STRING,
sizeof (_CYGWIN_SIGNAL_STRING) - 1) != 0)
{
#ifdef __CYGWIN__
if (strncmp (s, "cYg", 3) != 0)
@ -937,11 +950,13 @@ handle_output_debug_string (struct target_waitstatus *ourstatus)
#ifdef __COPY_CONTEXT_SIZE
else
{
/* Got a cygwin signal marker. A cygwin signal is followed by the signal number
itself and then optionally followed by the thread id and address to saved context
within the DLL. If these are supplied, then the given thread is assumed to have
issued the signal and the context from the thread is assumed to be stored at the
given address in the inferior. Tell gdb to treat this like a real signal. */
/* Got a cygwin signal marker. A cygwin signal is followed by
the signal number itself and then optionally followed by the
thread id and address to saved context within the DLL. If
these are supplied, then the given thread is assumed to have
issued the signal and the context from the thread is assumed
to be stored at the given address in the inferior. Tell gdb
to treat this like a real signal. */
char *p;
int sig = strtol (s + sizeof (_CYGWIN_SIGNAL_STRING) - 1, &p, 0);
int gotasig = target_signal_from_host (sig);
@ -956,7 +971,8 @@ handle_output_debug_string (struct target_waitstatus *ourstatus)
retval = main_thread_id;
else if ((x = (LPCVOID) strtoul (p, &p, 0))
&& ReadProcessMemory (current_process_handle, x,
&saved_context, __COPY_CONTEXT_SIZE, &n)
&saved_context,
__COPY_CONTEXT_SIZE, &n)
&& n == __COPY_CONTEXT_SIZE)
have_saved_context = 1;
current_event.dwThreadId = retval;
@ -1097,7 +1113,7 @@ handle_exception (struct target_waitstatus *ourstatus)
ourstatus->kind = TARGET_WAITKIND_STOPPED;
/* Record the context of the current thread */
/* Record the context of the current thread. */
th = thread_rec (current_event.dwThreadId, -1);
switch (code)
@ -1107,17 +1123,23 @@ handle_exception (struct target_waitstatus *ourstatus)
ourstatus->value.sig = TARGET_SIGNAL_SEGV;
#ifdef __CYGWIN__
{
/* See if the access violation happened within the cygwin DLL itself. Cygwin uses
a kind of exception handling to deal with passed-in invalid addresses. gdb
should not treat these as real SEGVs since they will be silently handled by
cygwin. A real SEGV will (theoretically) be caught by cygwin later in the process
and will be sent as a cygwin-specific-signal. So, ignore SEGVs if they show up
/* See if the access violation happened within the cygwin DLL
itself. Cygwin uses a kind of exception handling to deal
with passed-in invalid addresses. gdb should not treat
these as real SEGVs since they will be silently handled by
cygwin. A real SEGV will (theoretically) be caught by
cygwin later in the process and will be sent as a
cygwin-specific-signal. So, ignore SEGVs if they show up
within the text segment of the DLL itself. */
char *fn;
CORE_ADDR addr = (CORE_ADDR) (uintptr_t) current_event.u.Exception.ExceptionRecord.ExceptionAddress;
if ((!cygwin_exceptions && (addr >= cygwin_load_start && addr < cygwin_load_end))
CORE_ADDR addr = (CORE_ADDR) (uintptr_t)
current_event.u.Exception.ExceptionRecord.ExceptionAddress;
if ((!cygwin_exceptions && (addr >= cygwin_load_start
&& addr < cygwin_load_end))
|| (find_pc_partial_function (addr, &fn, NULL, NULL)
&& strncmp (fn, "KERNEL32!IsBad", strlen ("KERNEL32!IsBad")) == 0))
&& strncmp (fn, "KERNEL32!IsBad",
strlen ("KERNEL32!IsBad")) == 0))
return 0;
}
#endif
@ -1211,7 +1233,7 @@ handle_exception (struct target_waitstatus *ourstatus)
}
/* Resume all artificially suspended threads if we are continuing
execution */
execution. */
static BOOL
windows_continue (DWORD continue_status, int id)
{
@ -1314,8 +1336,8 @@ windows_resume (struct target_ops *ops,
for (i = 0; xlate[i].them != -1; i++)
if (xlate[i].us == sig)
{
current_event.u.Exception.ExceptionRecord.ExceptionCode =
xlate[i].them;
current_event.u.Exception.ExceptionRecord.ExceptionCode
= xlate[i].them;
continue_status = DBG_EXCEPTION_NOT_HANDLED;
break;
}
@ -1334,13 +1356,13 @@ windows_resume (struct target_ops *ops,
DEBUG_EXEC (("gdb: windows_resume (pid=%d, tid=%ld, step=%d, sig=%d);\n",
ptid_get_pid (ptid), ptid_get_tid (ptid), step, sig));
/* Get context for currently selected thread */
/* Get context for currently selected thread. */
th = thread_rec (ptid_get_tid (inferior_ptid), FALSE);
if (th)
{
if (step)
{
/* Single step by setting t bit */
/* Single step by setting t bit. */
struct regcache *regcache = get_current_regcache ();
struct gdbarch *gdbarch = get_regcache_arch (regcache);
windows_fetch_inferior_registers (ops, regcache,
@ -1392,8 +1414,8 @@ ctrl_c_handler (DWORD event_type)
return TRUE;
if (!DebugBreakProcess (current_process_handle))
warning (_("\
Could not interrupt program. Press Ctrl-c in the program console."));
warning (_("Could not interrupt program. "
"Press Ctrl-c in the program console."));
/* Return true to tell that Ctrl-C has been handled. */
return TRUE;
@ -1446,7 +1468,7 @@ get_windows_debug_event (struct target_ops *ops,
}
break;
}
/* Record the existence of this thread */
/* Record the existence of this thread. */
retval = current_event.dwThreadId;
th = windows_add_thread (ptid_build (current_event.dwProcessId, 0,
current_event.dwThreadId),
@ -1483,7 +1505,7 @@ get_windows_debug_event (struct target_ops *ops,
windows_delete_thread (ptid_build (current_event.dwProcessId, 0,
main_thread_id));
main_thread_id = current_event.dwThreadId;
/* Add the main thread */
/* Add the main thread. */
th = windows_add_thread (ptid_build (current_event.dwProcessId, 0,
current_event.dwThreadId),
current_event.u.CreateProcessInfo.hThread,
@ -1560,7 +1582,7 @@ get_windows_debug_event (struct target_ops *ops,
}
break;
case OUTPUT_DEBUG_STRING_EVENT: /* message from the kernel */
case OUTPUT_DEBUG_STRING_EVENT: /* Message from the kernel. */
DEBUG_EVENTS (("gdb: kernel event for pid=%d tid=%x code=%s)\n",
(unsigned) current_event.dwProcessId,
(unsigned) current_event.dwThreadId,
@ -1783,7 +1805,8 @@ windows_attach (struct target_ops *ops, char *args, int from_tty)
if (set_process_privilege (SE_DEBUG_NAME, TRUE) < 0)
{
printf_unfiltered ("Warning: Failed to get SE_DEBUG_NAME privilege\n");
printf_unfiltered ("This can cause attach to fail on Windows NT/2K/XP\n");
printf_unfiltered ("This can cause attach to "
"fail on Windows NT/2K/XP\n");
}
windows_init_thread_list ();
@ -1793,7 +1816,7 @@ windows_attach (struct target_ops *ops, char *args, int from_tty)
#ifdef __CYGWIN__
if (!ok)
{
/* Try fall back to Cygwin pid */
/* Try fall back to Cygwin pid. */
pid = cygwin_internal (CW_CYGWIN_PID_TO_WINPID, pid);
if (pid > 0)
@ -1861,7 +1884,7 @@ windows_pid_to_exec_file (int pid)
{
static char path[__PMAX];
#ifdef __CYGWIN__
/* Try to find exe name as symlink target of /proc/<pid>/exe */
/* Try to find exe name as symlink target of /proc/<pid>/exe. */
int nchars;
char procexe[sizeof ("/proc/4294967295/exe")];
sprintf (procexe, "/proc/%u/exe", pid);
@ -2019,7 +2042,8 @@ windows_create_inferior (struct target_ops *ops, char *exec_file,
cygallargs = (wchar_t *) alloca (len * sizeof (wchar_t));
swprintf (cygallargs, len, L" -c 'exec %s %s'", exec_file, allargs);
#else
cygallargs = (char *) alloca (sizeof (" -c 'exec '") + strlen (exec_file)
cygallargs = (char *)
alloca (sizeof (" -c 'exec '") + strlen (exec_file)
+ strlen (allargs) + 2);
sprintf (cygallargs, " -c 'exec %s %s'", exec_file, allargs);
#endif
@ -2217,13 +2241,13 @@ windows_kill_inferior (struct target_ops *ops)
break;
}
target_mourn_inferior (); /* or just windows_mourn_inferior? */
target_mourn_inferior (); /* Or just windows_mourn_inferior? */
}
static void
windows_prepare_to_store (struct regcache *regcache)
{
/* Do nothing, since we can store individual regs */
/* Do nothing, since we can store individual regs. */
}
static int
@ -2272,7 +2296,8 @@ windows_xfer_shared_libraries (struct target_ops *ops,
obstack_init (&obstack);
obstack_grow_str (&obstack, "<library-list>\n");
for (so = solib_start.next; so; so = so->next)
windows_xfer_shared_library (so->so_name, (CORE_ADDR) (uintptr_t) so->lm_info->load_addr,
windows_xfer_shared_library (so->so_name, (CORE_ADDR)
(uintptr_t) so->lm_info->load_addr,
target_gdbarch, &obstack);
obstack_grow_str0 (&obstack, "</library-list>\n");
@ -2434,7 +2459,8 @@ Show use of shell to start subprocess."), NULL,
NULL, /* FIXME: i18n: */
&setlist, &showlist);
add_setshow_boolean_cmd ("cygwin-exceptions", class_support, &cygwin_exceptions, _("\
add_setshow_boolean_cmd ("cygwin-exceptions", class_support,
&cygwin_exceptions, _("\
Break when an exception is detected in the Cygwin DLL itself."), _("\
Show whether gdb breaks on exceptions in the Cygwin DLL itself."), NULL,
NULL,
@ -2541,8 +2567,8 @@ windows_thread_alive (struct target_ops *ops, ptid_t ptid)
gdb_assert (ptid_get_tid (ptid) != 0);
tid = ptid_get_tid (ptid);
return WaitForSingleObject (thread_rec (tid, FALSE)->h, 0) == WAIT_OBJECT_0 ?
FALSE : TRUE;
return WaitForSingleObject (thread_rec (tid, FALSE)->h, 0) == WAIT_OBJECT_0
? FALSE : TRUE;
}
void
@ -2694,9 +2720,11 @@ _initialize_loadable (void)
EnumProcessModules = bad_EnumProcessModules;
GetModuleInformation = bad_GetModuleInformation;
GetModuleFileNameEx = bad_GetModuleFileNameEx;
/* This will probably fail on Windows 9x/Me. Let the user know that we're
missing some functionality. */
warning(_("cannot automatically find executable file or library to read symbols.\nUse \"file\" or \"dll\" command to load executable/libraries directly."));
/* This will probably fail on Windows 9x/Me. Let the user know
that we're missing some functionality. */
warning(_("\
cannot automatically find executable file or library to read symbols.\n\
Use \"file\" or \"dll\" command to load executable/libraries directly."));
}
hm = LoadLibrary ("advapi32.dll");
@ -2709,7 +2737,8 @@ _initialize_loadable (void)
GetProcAddress (hm, "AdjustTokenPrivileges");
/* Only need to set one of these since if OpenProcessToken fails nothing
else is needed. */
if (!OpenProcessToken || !LookupPrivilegeValueA || !AdjustTokenPrivileges)
if (!OpenProcessToken || !LookupPrivilegeValueA
|| !AdjustTokenPrivileges)
OpenProcessToken = bad_OpenProcessToken;
}
}

View file

@ -86,8 +86,10 @@ static const char* TIB_NAME[] =
" last_error_number " /* %fs:0x0034 */
};
static const int MAX_TIB32 = sizeof (thread_information_32) / sizeof (uint32_t);
static const int MAX_TIB64 = sizeof (thread_information_64) / sizeof (uint64_t);
static const int MAX_TIB32 =
sizeof (thread_information_32) / sizeof (uint32_t);
static const int MAX_TIB64 =
sizeof (thread_information_64) / sizeof (uint64_t);
static const int FULL_TIB_SIZE = 0x1000;
static int maint_display_all_tib = 0;
@ -125,7 +127,8 @@ windows_get_tlb_type (struct gdbarch *gdbarch)
module_list_ptr_type = void_ptr_type;
append_composite_type_field (list_type, "forward_list", module_list_ptr_type);
append_composite_type_field (list_type, "forward_list",
module_list_ptr_type);
append_composite_type_field (list_type, "backward_list",
module_list_ptr_type);
@ -184,7 +187,8 @@ windows_get_tlb_type (struct gdbarch *gdbarch)
/* uint32_t current_seh; %fs:0x0000 */
append_composite_type_field (tib_type, "current_seh", seh_ptr_type);
/* uint32_t current_top_of_stack; %fs:0x0004 */
append_composite_type_field (tib_type, "current_top_of_stack", void_ptr_type);
append_composite_type_field (tib_type, "current_top_of_stack",
void_ptr_type);
/* uint32_t current_bottom_of_stack; %fs:0x0008 */
append_composite_type_field (tib_type, "current_bottom_of_stack",
void_ptr_type);
@ -206,7 +210,8 @@ windows_get_tlb_type (struct gdbarch *gdbarch)
/* uint32_t active_rpc_handle; %fs:0x0028 */
append_composite_type_field (tib_type, "active_rpc_handle", dword_ptr_type);
/* uint32_t thread_local_storage; %fs:0x002c */
append_composite_type_field (tib_type, "thread_local_storage", void_ptr_type);
append_composite_type_field (tib_type, "thread_local_storage",
void_ptr_type);
/* uint32_t process_environment_block; %fs:0x0030 */
append_composite_type_field (tib_type, "process_environment_block",
peb_ptr_type);
@ -320,8 +325,8 @@ display_one_tib (ptid_t ptid)
if (target_read (&current_target, TARGET_OBJECT_MEMORY,
NULL, tib, thread_local_base, tib_size) != tib_size)
{
printf_filtered (_("Unable to read thread information block for %s at \
address %s\n"),
printf_filtered (_("Unable to read thread information "
"block for %s at address %s\n"),
target_pid_to_str (ptid),
paddress (target_gdbarch, thread_local_base));
return -1;
@ -397,8 +402,8 @@ static void
show_maint_show_all_tib (struct ui_file *file, int from_tty,
struct cmd_list_element *c, const char *value)
{
fprintf_filtered (file, _("Show all non-zero elements of Thread Information \
Block is %s.\n"), value);
fprintf_filtered (file, _("Show all non-zero elements of "
"Thread Information Block is %s.\n"), value);
}
static void

View file

@ -86,20 +86,20 @@ struct symloc
static enum language psymtab_language = language_unknown;
/* Simplified internal version of coff symbol table information */
/* Simplified internal version of coff symbol table information. */
struct coff_symbol
{
char *c_name;
int c_symnum; /* symbol number of this entry */
int c_naux; /* 0 if syment only, 1 if syment + auxent */
int c_symnum; /* Symbol number of this entry. */
int c_naux; /* 0 if syment only, 1 if syment + auxent. */
long c_value;
unsigned char c_sclass;
int c_secnum;
unsigned int c_type;
};
/* last function's saved coff symbol `cs' */
/* Last function's saved coff symbol `cs'. */
static struct coff_symbol fcn_cs_saved;
@ -116,7 +116,7 @@ static CORE_ADDR cur_src_end_addr;
static CORE_ADDR first_object_file_end;
/* initial symbol-table-debug-string vector length */
/* Initial symbol-table-debug-string vector length. */
#define INITIAL_STABVECTOR_LENGTH 40
@ -133,8 +133,8 @@ static unsigned local_symesz;
struct coff_symfile_info
{
file_ptr min_lineno_offset; /* Where in file lowest line#s are */
file_ptr max_lineno_offset; /* 1+last byte of line#s in file */
file_ptr min_lineno_offset; /* Where in file lowest line#s are. */
file_ptr max_lineno_offset; /* 1+last byte of line#s in file. */
/* Pointer to the string table. */
char *strtbl;
@ -381,9 +381,10 @@ compare_lte (const void *lte1p, const void *lte2p)
return lte1->pc - lte2->pc;
}
/* Given a line table with function entries are marked, arrange its functions
in ascending order and strip off function entry markers and return it in
a newly created table. If the old one is good enough, return the old one. */
/* Given a line table with function entries are marked, arrange its
functions in ascending order and strip off function entry markers
and return it in a newly created table. If the old one is good
enough, return the old one. */
/* FIXME: I think all this stuff can be replaced by just passing
sort_linevec = 1 to end_symtab. */
@ -406,9 +407,9 @@ arrange_linetable (struct linetable *oldLineTb)
for (function_count = 0, ii = 0; ii < oldLineTb->nitems; ++ii)
{
if (oldLineTb->item[ii].line == 0)
{ /* function entry found. */
{ /* Function entry found. */
if (function_count >= fentry_size)
{ /* make sure you have room. */
{ /* Make sure you have room. */
fentry_size *= 2;
fentry = (struct linetable_entry *)
xrealloc (fentry,
@ -429,13 +430,13 @@ arrange_linetable (struct linetable *oldLineTb)
qsort (fentry, function_count,
sizeof (struct linetable_entry), compare_lte);
/* allocate a new line table. */
/* Allocate a new line table. */
newLineTb = (struct linetable *)
xmalloc
(sizeof (struct linetable) +
(oldLineTb->nitems - function_count) * sizeof (struct linetable_entry));
/* if line table does not start with a function beginning, copy up until
/* If line table does not start with a function beginning, copy up until
a function begin. */
newline = 0;
@ -473,7 +474,7 @@ typedef struct _inclTable
int begin, end;
struct subfile *subfile;
unsigned funStartLine; /* start line # of its function */
unsigned funStartLine; /* Start line # of its function. */
}
InclTable;
@ -582,7 +583,8 @@ process_linenos (CORE_ADDR start, CORE_ADDR end)
memset (&main_subfile, '\0', sizeof (main_subfile));
if (inclIndx == 0)
/* All source lines were in the main source file. None in include files. */
/* All source lines were in the main source file. None in include
files. */
enter_line_range (&main_subfile, offset, 0, start, end,
&main_source_baseline);
@ -755,7 +757,7 @@ return_after_cleanup:
static void
aix_process_linenos (void)
{
/* process line numbers and enter them into line vector */
/* Process line numbers and enter them into line vector. */
process_linenos (last_source_start_addr, cur_src_end_addr);
}
@ -937,7 +939,7 @@ read_xcoff_symtab (struct partial_symtab *pst)
{
struct objfile *objfile = pst->objfile;
bfd *abfd = objfile->obfd;
char *raw_auxptr; /* Pointer to first raw aux entry for sym */
char *raw_auxptr; /* Pointer to first raw aux entry for sym. */
char *strtbl =
((struct coff_symfile_info *) objfile->deprecated_sym_private)->strtbl;
char *debugsec =
@ -964,7 +966,7 @@ read_xcoff_symtab (struct partial_symtab *pst)
char *filestring = " _start_ "; /* Name of the current file. */
char *last_csect_name; /* last seen csect's name and value */
char *last_csect_name; /* Last seen csect's name and value. */
CORE_ADDR last_csect_val;
int last_csect_sec;
@ -1076,7 +1078,7 @@ read_xcoff_symtab (struct partial_symtab *pst)
start_symtab ("_globals_", (char *) NULL, (CORE_ADDR) 0);
record_debugformat (debugfmt);
cur_src_end_addr = first_object_file_end;
/* done with all files, everything from here on is globals */
/* Done with all files, everything from here on is globals. */
}
if ((cs->c_sclass == C_EXT || cs->c_sclass == C_HIDEXT)
@ -1316,7 +1318,7 @@ read_xcoff_symtab (struct partial_symtab *pst)
contains number of lines to '}' */
if (context_stack_depth <= 0)
{ /* We attempted to pop an empty context stack */
{ /* We attempted to pop an empty context stack. */
ef_complaint (cs->c_symnum);
within_function = 0;
break;
@ -1410,7 +1412,7 @@ read_xcoff_symtab (struct partial_symtab *pst)
else if (strcmp (cs->c_name, ".eb") == 0)
{
if (context_stack_depth <= 0)
{ /* We attempted to pop an empty context stack */
{ /* We attempted to pop an empty context stack. */
eb_complaint (cs->c_symnum);
break;
}
@ -1717,7 +1719,7 @@ read_symbol_lineno (int symno)
return 0;
gotit:
/* take aux entry and return its lineno */
/* Take aux entry and return its lineno. */
symno++;
bfd_coff_swap_aux_in (objfile->obfd, stbl + symno * local_symesz,
symbol->n_type, symbol->n_sclass,
@ -1726,7 +1728,7 @@ gotit:
return main_aux->x_sym.x_misc.x_lnsz.x_lnno;
}
/* Support for line number handling */
/* Support for line number handling. */
/* This function is called for every section; it finds the outer limits
* of the line table (minimum and maximum file offset) so that the
@ -1775,7 +1777,7 @@ xcoff_psymtab_to_symtab_1 (struct partial_symtab *pst)
return;
}
/* Read in all partial symtabs on which this one is dependent */
/* Read in all partial symtabs on which this one is dependent. */
for (i = 0; i < pst->number_of_dependencies; i++)
if (!pst->dependencies[i]->readin)
{
@ -1872,7 +1874,7 @@ xcoff_new_init (struct objfile *objfile)
static void
xcoff_symfile_init (struct objfile *objfile)
{
/* Allocate struct to keep track of the symfile */
/* Allocate struct to keep track of the symfile. */
objfile->deprecated_sym_private
= xmalloc (sizeof (struct coff_symfile_info));
@ -2172,12 +2174,12 @@ scan_xcoff_symtab (struct objfile *objfile)
/* Current partial symtab */
struct partial_symtab *pst;
/* List of current psymtab's include files */
/* List of current psymtab's include files. */
char **psymtab_include_list;
int includes_allocated;
int includes_used;
/* Index within current psymtab dependency list */
/* Index within current psymtab dependency list. */
struct partial_symtab **dependency_list;
int dependencies_used, dependencies_allocated;
@ -2186,10 +2188,10 @@ scan_xcoff_symtab (struct objfile *objfile)
union internal_auxent main_aux[5];
unsigned int ssymnum;
char *last_csect_name = NULL; /* last seen csect's name and value */
char *last_csect_name = NULL; /* Last seen csect's name and value. */
CORE_ADDR last_csect_val = 0;
int last_csect_sec = 0;
int misc_func_recorded = 0; /* true if any misc. function */
int misc_func_recorded = 0; /* true if any misc. function. */
int textlow_not_set = 1;
pst = (struct partial_symtab *) 0;
@ -2546,7 +2548,7 @@ scan_xcoff_symtab (struct objfile *objfile)
case C_BINCL:
{
/* Mark down an include file in the current psymtab */
/* Mark down an include file in the current psymtab. */
enum language tmp_language;
swap_sym (&symbol, &main_aux[0], &namestring, &sraw_symbol,
@ -2884,9 +2886,10 @@ scan_xcoff_symtab (struct objfile *objfile)
dependencies_used, textlow_not_set);
}
/* Record the toc offset value of this symbol table into objfile structure.
If no XMC_TC0 is found, toc_offset should be zero. Another place to obtain
this information would be file auxiliary header. */
/* Record the toc offset value of this symbol table into objfile
structure. If no XMC_TC0 is found, toc_offset should be zero.
Another place to obtain this information would be file auxiliary
header. */
((struct coff_symfile_info *) objfile->deprecated_sym_private)->toc_offset
= toc_offset;
@ -2909,8 +2912,8 @@ xcoff_get_toc_offset (struct objfile *objfile)
hung off the objfile structure.
SECTION_OFFSETS contains offsets relative to which the symbols in the
various sections are (depending where the sections were actually loaded).
*/
various sections are (depending where the sections were actually
loaded). */
static void
xcoff_initial_scan (struct objfile *objfile, int symfile_flags)
@ -2991,7 +2994,7 @@ xcoff_initial_scan (struct objfile *objfile, int symfile_flags)
if (val != size)
perror_with_name (_("reading symbol table"));
/* If we are reinitializing, or if we have never loaded syms yet, init */
/* If we are reinitializing, or if we have never loaded syms yet, init. */
if (objfile->global_psymbols.size == 0 && objfile->static_psymbols.size == 0)
/* I'm not sure how how good num_symbols is; the rule of thumb in
init_psymbol_list was developed for a.out. On the one hand,

View file

@ -344,7 +344,7 @@ xstormy16_analyze_prologue (struct gdbarch *gdbarch,
cache->framesize += xstormy16_reg_size;
}
/* optional stack allocation for args and local vars <= 4 byte */
/* Optional stack allocation for args and local vars <= 4 byte. */
else if (inst == 0x301f || inst == 0x303f) /* inc r15, #0x1/#0x3 */
{
cache->framesize += ((inst & 0x0030) >> 4) + 1;
@ -356,7 +356,7 @@ xstormy16_analyze_prologue (struct gdbarch *gdbarch,
cache->framesize += (inst & 0x00f0) >> 4;
}
/* optional stack allocation for args and local vars >= 16 byte */
/* Optional stack allocation for args and local vars >= 16 byte. */
else if (inst == 0x314f && inst2 >= 0x0010) /* 314f HHHH add r15, #0xH */
{
cache->framesize += inst2;
@ -368,15 +368,16 @@ xstormy16_analyze_prologue (struct gdbarch *gdbarch,
cache->uses_fp = 1;
}
/* optional copying of args in r2-r7 to r10-r13 */
/* Probably only in optimized case but legal action for prologue */
/* optional copying of args in r2-r7 to r10-r13. */
/* Probably only in optimized case but legal action for prologue. */
else if ((inst & 0xff00) == 0x4600 /* 46SD mov rD, rS */
&& (inst & 0x00f0) >= 0x0020 && (inst & 0x00f0) <= 0x0070
&& (inst & 0x000f) >= 0x00a0 && (inst & 0x000f) <= 0x000d)
;
/* optional copying of args in r2-r7 to stack */
/* 72DS HHHH mov.b (rD, 0xHHHH), r(S-8) (bit3 always 1, bit2-0 = reg) */
/* Optional copying of args in r2-r7 to stack. */
/* 72DS HHHH mov.b (rD, 0xHHHH), r(S-8)
(bit3 always 1, bit2-0 = reg) */
/* 73DS HHHH mov.w (rD, 0xHHHH), r(S-8) */
else if ((inst & 0xfed8) == 0x72d8 && (inst & 0x0007) >= 2)
{
@ -478,13 +479,15 @@ xstormy16_in_function_epilogue_p (struct gdbarch *gdbarch, CORE_ADDR pc)
while ((addr -= xstormy16_inst_size) >= func_addr)
{
inst = read_memory_unsigned_integer (addr,
xstormy16_inst_size, byte_order);
xstormy16_inst_size,
byte_order);
if (inst >= 0x009a && inst <= 0x009d) /* pop r10...r13 */
continue;
if (inst == 0x305f || inst == 0x307f) /* dec r15, #0x1/#0x3 */
break;
inst2 = read_memory_unsigned_integer (addr - xstormy16_inst_size,
xstormy16_inst_size, byte_order);
xstormy16_inst_size,
byte_order);
if (inst2 == 0x314f && inst >= 0x8000) /* add r15, neg. value */
{
addr -= xstormy16_inst_size;
@ -575,9 +578,11 @@ xstormy16_find_jmp_table_entry (struct gdbarch *gdbarch, CORE_ADDR faddr)
if (target_read_memory (addr, buf, sizeof buf))
return 0;
inst = extract_unsigned_integer (buf,
xstormy16_inst_size, byte_order);
xstormy16_inst_size,
byte_order);
inst2 = extract_unsigned_integer (buf + xstormy16_inst_size,
xstormy16_inst_size, byte_order);
xstormy16_inst_size,
byte_order);
faddr2 = inst2 << 8 | (inst & 0xff);
if (faddr == faddr2)
return addr;
@ -851,7 +856,8 @@ xstormy16_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
Initializer function for the Sanyo Xstormy16a module.
Called by gdb at start-up. */
extern initialize_file_ftype _initialize_xstormy16_tdep; /* -Wmissing-prototypes */
/* -Wmissing-prototypes */
extern initialize_file_ftype _initialize_xstormy16_tdep;
void
_initialize_xstormy16_tdep (void)

View file

@ -116,7 +116,8 @@ static int xtensa_debug_level = 0;
#define PS_WOE (1<<18)
#define PS_EXC (1<<4)
/* Convert a live A-register number to the corresponding AR-register number. */
/* Convert a live A-register number to the corresponding AR-register
number. */
static int
arreg_number (struct gdbarch *gdbarch, int a_regnum, ULONGEST wb)
{
@ -890,10 +891,11 @@ typedef struct xtensa_windowed_frame_cache
{
int wb; /* WINDOWBASE of the previous frame. */
int callsize; /* Call size of this frame. */
int ws; /* WINDOWSTART of the previous frame. It keeps track of
life windows only. If there is no bit set for the
window, that means it had been already spilled
because of window overflow. */
int ws; /* WINDOWSTART of the previous frame. It
keeps track of life windows only. If there
is no bit set for the window, that means it
had been already spilled because of window
overflow. */
/* Spilled A-registers from the previous frame.
AREGS[i] == -1, if corresponding AR is alive. */
@ -902,7 +904,8 @@ typedef struct xtensa_windowed_frame_cache
/* Call0 ABI Definitions. */
#define C0_MAXOPDS 3 /* Maximum number of operands for prologue analysis. */
#define C0_MAXOPDS 3 /* Maximum number of operands for prologue
analysis. */
#define C0_NREGS 16 /* Number of A-registers to track. */
#define C0_CLESV 12 /* Callee-saved registers are here and up. */
#define C0_SP 1 /* Register used as SP. */
@ -929,8 +932,9 @@ typedef struct xtensa_c0reg
int fr_reg; /* original register from which register content
is derived, or C0_CONST, or C0_INEXP. */
int fr_ofs; /* constant offset from reg, or immediate value. */
int to_stk; /* offset from original SP to register (4-byte aligned),
or C0_NOSTK if register has not been saved. */
int to_stk; /* offset from original SP to register (4-byte
aligned), or C0_NOSTK if register has not
been saved. */
} xtensa_c0reg_t;
@ -938,7 +942,8 @@ typedef struct xtensa_c0reg
typedef struct xtensa_call0_frame_cache
{
int c0_frmsz; /* Stack frame size. */
int c0_hasfp; /* Current frame uses frame pointer. */
int c0_hasfp; /* Current frame uses frame
pointer. */
int fp_regnum; /* A-register used as FP. */
int c0_fp; /* Actual value of frame pointer. */
xtensa_c0reg_t c0_rt[C0_NREGS]; /* Register tracking information. */
@ -1132,7 +1137,8 @@ xtensa_scan_prologue (struct gdbarch *gdbarch, CORE_ADDR current_pc)
&register_operand) != 0)
RETURN_FP;
fp_regnum = gdbarch_tdep (gdbarch)->a0_base + register_operand;
fp_regnum
= gdbarch_tdep (gdbarch)->a0_base + register_operand;
RETURN_FP;
}
}
@ -1166,8 +1172,7 @@ done:
cache->base = SP (or best guess about FP) of this frame;
cache->pc = entry-PC (entry point of the frame function);
cache->prev_sp = SP of the previous frame.
*/
cache->prev_sp = SP of the previous frame. */
static void
call0_frame_cache (struct frame_info *this_frame,
@ -1278,8 +1283,9 @@ xtensa_frame_cache (struct frame_info *this_frame, void **this_cache)
}
if ((cache->prev_sp == 0) && ( ra != 0 ))
/* If RA is equal to 0 this frame is an outermost frame. Leave
cache->prev_sp unchanged marking the boundary of the frame stack. */
/* If RA is equal to 0 this frame is an outermost frame.
Leave cache->prev_sp unchanged marking the boundary of the
frame stack. */
{
if ((cache->wd.ws & (1 << cache->wd.wb)) == 0)
{
@ -1296,7 +1302,8 @@ xtensa_frame_cache (struct frame_info *this_frame, void **this_cache)
(gdbarch, gdbarch_tdep (gdbarch)->a0_base + 1,
cache->wd.wb);
cache->prev_sp = get_frame_register_unsigned (this_frame, regnum);
cache->prev_sp = get_frame_register_unsigned (this_frame,
regnum);
}
}
}
@ -1406,7 +1413,8 @@ xtensa_frame_prev_register (struct frame_info *this_frame,
spe = cache->c0.c0_fp
- cache->c0.c0_rt[cache->c0.fp_regnum].fr_ofs;
return frame_unwind_got_memory (this_frame, regnum, spe + stkofs);
return frame_unwind_got_memory (this_frame, regnum,
spe + stkofs);
}
}
}
@ -1472,7 +1480,8 @@ xtensa_extract_return_value (struct type *type,
/* On Xtensa, we can return up to 4 words (or 2 for call12). */
if (len > (callsize > 8 ? 8 : 16))
internal_error (__FILE__, __LINE__,
_("cannot extract return value of %d bytes long"), len);
_("cannot extract return value of %d bytes long"),
len);
/* Get the register offset of the return
register (A2) in the caller window. */
@ -1612,8 +1621,8 @@ xtensa_push_dummy_call (struct gdbarch *gdbarch,
int align; /* alignment */
union
{
int offset; /* stack offset if on stack */
int regno; /* regno if in register */
int offset; /* stack offset if on stack. */
int regno; /* regno if in register. */
} u;
};
@ -1912,7 +1921,8 @@ typedef enum {
c0opc_mov, /* Moving a register to a register. */
c0opc_movi, /* Moving an immediate to a register. */
c0opc_l32r, /* Loading a literal. */
c0opc_s32i, /* Storing word at fixed offset from a base register. */
c0opc_s32i, /* Storing word at fixed offset from a base
register. */
c0opc_NrOf /* Number of opcode classifications. */
} xtensa_insn_kind;
@ -2216,7 +2226,8 @@ call0_analyze_prologue (struct gdbarch *gdbarch,
goto done;
opc = xtensa_opcode_decode (isa, ifmt, is, slot);
DEBUGVERB ("[call0_analyze_prologue] instr addr = 0x%08x, opc = %d\n",
DEBUGVERB ("[call0_analyze_prologue] instr "
"addr = 0x%08x, opc = %d\n",
(unsigned)ia, opc);
if (opc == XTENSA_UNDEFINED)
opclass = c0opc_illegal;
@ -2302,7 +2313,8 @@ done:
static void
call0_frame_cache (struct frame_info *this_frame,
xtensa_frame_cache_t *cache, CORE_ADDR pc, CORE_ADDR litbase)
xtensa_frame_cache_t *cache,
CORE_ADDR pc, CORE_ADDR litbase)
{
struct gdbarch *gdbarch = get_frame_arch (this_frame);
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
@ -2382,21 +2394,23 @@ analysis failed in this frame. GDB command execution stopped."));
else if (cache->c0.c0_rt[C0_RA].fr_reg == C0_CONST
&& cache->c0.c0_rt[C0_RA].fr_ofs == 0)
{
/* Special case for terminating backtrace at a function that wants to
be seen as the outermost. Such a function will clear it's RA (A0)
register to 0 in the prologue instead of saving its original value. */
/* Special case for terminating backtrace at a function that
wants to be seen as the outermost. Such a function will
clear it's RA (A0) register to 0 in the prologue instead of
saving its original value. */
ra = 0;
}
else
{
/* RA was copied to another register or (before any function call) may
still be in the original RA register. This is not always reliable:
even in a leaf function, register tracking stops after prologue, and
even in prologue, non-prologue instructions (not tracked) may overwrite
RA or any register it was copied to. If likely in prologue or before
any call, use retracking info and hope for the best (compiler should
have saved RA in stack if not in a leaf function). If not in prologue,
too bad. */
/* RA was copied to another register or (before any function
call) may still be in the original RA register. This is not
always reliable: even in a leaf function, register tracking
stops after prologue, and even in prologue, non-prologue
instructions (not tracked) may overwrite RA or any register
it was copied to. If likely in prologue or before any call,
use retracking info and hope for the best (compiler should
have saved RA in stack if not in a leaf function). If not in
prologue, too bad. */
int i;
for (i = 0;
@ -2667,7 +2681,7 @@ xtensa_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
set_gdbarch_register_name (gdbarch, xtensa_register_name);
set_gdbarch_register_type (gdbarch, xtensa_register_type);
/* To call functions from GDB using dummy frame */
/* To call functions from GDB using dummy frame. */
set_gdbarch_push_dummy_call (gdbarch, xtensa_push_dummy_call);
set_gdbarch_believe_pcc_promotion (gdbarch, 1);
@ -2736,9 +2750,9 @@ _initialize_xtensa_tdep (void)
add_setshow_zinteger_cmd ("xtensa",
class_maintenance,
&xtensa_debug_level, _("\
Set Xtensa debugging."), _("\
Show Xtensa debugging."), _("\
&xtensa_debug_level,
_("Set Xtensa debugging."),
_("Show Xtensa debugging."), _("\
When non-zero, Xtensa-specific debugging is enabled. \
Can be 1, 2, 3, or 4 indicating the level of debugging."),
NULL,