This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH] update "info scope" with new symtypes


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;

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]