This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
[PATCH] update "info scope" with new symtypes
- From: Michael Snyder <msnyder at redhat dot com>
- To: gdb-patches at sources dot redhat dot com
- Date: Fri, 07 May 2004 21:28:16 +0000
- Subject: [PATCH] update "info scope" with new symtypes
- Organization: Red Hat, Inc.
Add LOC_COMPUTED etc. to scope_info.
2004-05-07 Michael Snyder <msnyder@redhat.com>
* tracepoint.c (scope_info): Add handling for LOC_COMPUTED,
LOC_COMPUTED_ARG, and LOC_INDIRECT.
Index: tracepoint.c
===================================================================
RCS file: /cvs/src/src/gdb/tracepoint.c,v
retrieving revision 1.59
diff -p -r1.59 tracepoint.c
*** tracepoint.c 28 Apr 2004 16:36:25 -0000 1.59
--- tracepoint.c 7 May 2004 21:26:22 -0000
*************** scope_info (char *args, int from_tty)
*** 2345,2351 ****
sals = decode_line_1 (&args, 1, NULL, 0, &canonical, NULL);
if (sals.nelts == 0)
! return; /* presumably decode_line_1 has already warned */
/* Resolve line numbers to PC */
resolve_sal_pc (&sals.sals[0]);
--- 2345,2351 ----
sals = decode_line_1 (&args, 1, NULL, 0, &canonical, NULL);
if (sals.nelts == 0)
! return; /* presumably decode_line_1 has already warned */
/* Resolve line numbers to PC */
resolve_sal_pc (&sals.sals[0]);
*************** scope_info (char *args, int from_tty)
*** 2387,2393 ****
break;
case LOC_STATIC:
printf_filtered ("in static storage at address ");
! print_address_numeric (SYMBOL_VALUE_ADDRESS (sym), 1, gdb_stdout);
break;
case LOC_REGISTER:
printf_filtered ("a local variable in register $%s",
--- 2387,2394 ----
break;
case LOC_STATIC:
printf_filtered ("in static storage at address ");
! print_address_numeric (SYMBOL_VALUE_ADDRESS (sym),
! 1, gdb_stdout);
break;
case LOC_REGISTER:
printf_filtered ("a local variable in register $%s",
*************** scope_info (char *args, int from_tty)
*** 2419,2430 ****
continue;
case LOC_LABEL:
printf_filtered ("a label at address ");
! print_address_numeric (SYMBOL_VALUE_ADDRESS (sym), 1, gdb_stdout);
break;
case LOC_BLOCK:
printf_filtered ("a function at address ");
! print_address_numeric (BLOCK_START (SYMBOL_BLOCK_VALUE (sym)), 1,
! gdb_stdout);
break;
case LOC_BASEREG:
printf_filtered ("a variable at offset %ld from register $%s",
--- 2420,2432 ----
continue;
case LOC_LABEL:
printf_filtered ("a label at address ");
! print_address_numeric (SYMBOL_VALUE_ADDRESS (sym),
! 1, gdb_stdout);
break;
case LOC_BLOCK:
printf_filtered ("a function at address ");
! print_address_numeric (BLOCK_START (SYMBOL_BLOCK_VALUE (sym)),
! 1, gdb_stdout);
break;
case LOC_BASEREG:
printf_filtered ("a variable at offset %ld from register $%s",
*************** scope_info (char *args, int from_tty)
*** 2437,2443 ****
REGISTER_NAME (SYMBOL_BASEREG (sym)));
break;
case LOC_UNRESOLVED:
! msym = lookup_minimal_symbol (DEPRECATED_SYMBOL_NAME (sym), NULL, NULL);
if (msym == NULL)
printf_filtered ("Unresolved Static");
else
--- 2439,2446 ----
REGISTER_NAME (SYMBOL_BASEREG (sym)));
break;
case LOC_UNRESOLVED:
! msym = lookup_minimal_symbol (DEPRECATED_SYMBOL_NAME (sym),
! NULL, NULL);
if (msym == NULL)
printf_filtered ("Unresolved Static");
else
*************** scope_info (char *args, int from_tty)
*** 2450,2459 ****
case LOC_OPTIMIZED_OUT:
printf_filtered ("optimized out.\n");
continue;
}
if (SYMBOL_TYPE (sym))
printf_filtered (", length %d.\n",
! TYPE_LENGTH (check_typedef (SYMBOL_TYPE (sym))));
}
if (BLOCK_FUNCTION (block))
break;
--- 2453,2474 ----
case LOC_OPTIMIZED_OUT:
printf_filtered ("optimized out.\n");
continue;
+ case LOC_HP_THREAD_LOCAL_STATIC:
+ printf_filtered ("HP thread local static ");
+ break;
+ case LOC_INDIRECT:
+ printf_filtered ("extern (local indirect) at address ");
+ print_address_numeric (SYMBOL_VALUE_ADDRESS (sym),
+ 1, gdb_stdout);
+ break;
+ case LOC_COMPUTED:
+ case LOC_COMPUTED_ARG:
+ SYMBOL_OPS (sym)->describe_location (sym, gdb_stdout);
+ break;
}
if (SYMBOL_TYPE (sym))
printf_filtered (", length %d.\n",
! TYPE_LENGTH (check_typedef (SYMBOL_TYPE (sym))));
}
if (BLOCK_FUNCTION (block))
break;