add_memrange (collect, memrange_absolute, offset, len);
break;
case LOC_REGISTER:
- case LOC_REGPARM:
reg = SYMBOL_VALUE (sym);
if (info_verbose)
printf_filtered ("LOC_REG[parm] %s: ",
}
add_memrange (collect, reg, offset, len);
break;
- case LOC_BASEREG:
- case LOC_BASEREG_ARG:
- reg = SYMBOL_BASEREG (sym);
- offset = SYMBOL_VALUE (sym);
- if (info_verbose)
- {
- printf_filtered ("LOC_BASEREG %s: collect %ld bytes at offset ",
- DEPRECATED_SYMBOL_NAME (sym), len);
- printf_vma (offset);
- printf_filtered (" from basereg %d\n", reg);
- }
- add_memrange (collect, reg, offset, len);
- break;
case LOC_UNRESOLVED:
printf_filtered ("Don't know LOC_UNRESOLVED %s\n",
DEPRECATED_SYMBOL_NAME (sym));
QUIT; /* allow user to bail out with ^C */
ALL_BLOCK_SYMBOLS (block, iter, sym)
{
- switch (SYMBOL_CLASS (sym))
+ if (SYMBOL_IS_ARGUMENT (sym)
+ ? type == 'A' /* collecting Arguments */
+ : type == 'L') /* collecting Locals */
{
- default:
- warning (_("don't know how to trace local symbol %s"),
- DEPRECATED_SYMBOL_NAME (sym));
- case LOC_LOCAL:
- case LOC_STATIC:
- case LOC_REGISTER:
- case LOC_BASEREG:
- if (type == 'L') /* collecting Locals */
- {
- count++;
- collect_symbol (collect, sym, frame_regno,
- frame_offset);
- }
- break;
- case LOC_ARG:
- case LOC_REF_ARG:
- case LOC_REGPARM:
- case LOC_REGPARM_ADDR:
- case LOC_BASEREG_ARG:
- if (type == 'A') /* collecting Arguments */
- {
- count++;
- collect_symbol (collect, sym, frame_regno,
- frame_offset);
- }
+ count++;
+ collect_symbol (collect, sym, frame_regno,
+ frame_offset);
}
}
if (BLOCK_FUNCTION (block))
printf_filtered ("%s", paddress (SYMBOL_VALUE_ADDRESS (sym)));
break;
case LOC_REGISTER:
- printf_filtered ("a local variable in register $%s",
- gdbarch_register_name
+ if (SYMBOL_IS_ARGUMENT (sym))
+ printf_filtered ("an argument in register $%s",
+ gdbarch_register_name
+ (current_gdbarch, SYMBOL_VALUE (sym)));
+ else
+ printf_filtered ("a local variable in register $%s",
+ gdbarch_register_name
(current_gdbarch, SYMBOL_VALUE (sym)));
break;
case LOC_ARG:
printf_filtered ("a reference argument at offset %ld",
SYMBOL_VALUE (sym));
break;
- case LOC_REGPARM:
- printf_filtered ("an argument in register $%s",
- gdbarch_register_name
- (current_gdbarch, SYMBOL_VALUE (sym)));
- break;
case LOC_REGPARM_ADDR:
printf_filtered ("the address of an argument, in register $%s",
gdbarch_register_name
printf_filtered ("a function at address ");
printf_filtered ("%s", paddress (BLOCK_START (SYMBOL_BLOCK_VALUE (sym))));
break;
- case LOC_BASEREG:
- printf_filtered ("a variable at offset %ld from register $%s",
- SYMBOL_VALUE (sym),
- gdbarch_register_name
- (current_gdbarch, SYMBOL_BASEREG (sym)));
- break;
- case LOC_BASEREG_ARG:
- printf_filtered ("an argument at offset %ld from register $%s",
- SYMBOL_VALUE (sym),
- gdbarch_register_name
- (current_gdbarch, SYMBOL_BASEREG (sym)));
- break;
case LOC_UNRESOLVED:
msym = lookup_minimal_symbol (DEPRECATED_SYMBOL_NAME (sym),
NULL, NULL);
printf_filtered ("optimized out.\n");
continue;
case LOC_COMPUTED:
- case LOC_COMPUTED_ARG:
SYMBOL_OPS (sym)->describe_location (sym, gdb_stdout);
break;
}