[Search for users] [Overall Top Noters] [List of all Conferences] [Download this site]

Conference turris::decladebug

Title:Digital Ladebug debugger
Moderator:TLE::LUCIA
Created:Fri Feb 28 1992
Last Modified:Fri Jun 06 1997
Last Successful Update:Fri Jun 06 1997
Number of topics:969
Total number of notes:3959

814.0. ""bad reference" when trying to view references...." by CXXC::MJHANS (Matthew Hanselman, DEC C) Wed Feb 05 1997 16:44

Unfortunately, I haven't been able to break this down into a smaller
reproducable case.

Take this source program:
------------
struct {} a;
------------

run ladebug (4.0-26 or 4.0-29) on /usr/users/mjhans/cpri/exxalphaosf/bl36/exe/exx

Set a breakpoint in "create_union_struct_tdi_for"

Run with the parameters "-g -gem_be <your source file>"

The reference variable "us_type" will now display "bad reference" if you try to
look at it.  Moving one step up in the scope yields a "good" reference (to
"type")

Please tell me when you look at this so I can delete the program.

								- Matt

% ladebug /usr/users/mjhans/cpri/exxalphaosf/bl36/exe/exx
Welcome to the Ladebug Debugger Version 4.0-29
------------------ 
object file name: /usr/users/mjhans/cpri/exxalphaosf/bl36/exe/exx 
Reading symbolic information ...done
(ladebug) stop in create_union_struct_tdi_for
[#1: stop in void create_union_struct_tdi_for(GEM_TDI_HANDLE*, a_type&) ]
(ladebug) run -gem_be -g tmp.cxx
[1] stopped at [void create_union_struct_tdi_for(GEM_TDI_HANDLE*, a_type&):525
0x6ffcd1c0]
    525     create_union_struct_tdi_for__wkr(tdi, us_type);
(ladebug) print us_type
<bad reference>
(ladebug) up
>1  0x6ffcd4a4 in create_tdi_for(tdi=0x1405c340, type={ ... })
/usr/users/mjhans/cpri/src/edg-meg/me_debuggen.cxx:620
    620         create_union_struct_tdi_for(tdi, type); break;
(ladebug) print type
struct a_type { 
  source_corresp = struct a_source_correspondence { 
    dec_supp = 0x1405c320; 
    assoc_info = 0x1403ad78="X\255\003\024"; 
    name = 0x0; 
    unmangled_name = 0x0; 
    parent = union a_parent_class_or_namespace { 
      class_type = 0x0; 
      namespace_ptr = 0x0; 
    }; 
    decl_position = struct a_source_position { 
      seq = 1; 
      column = 8; 
    }; 
    access = 0; 
    referenced = 1; 
    needed = 1; 
    name_linkage = 3; 
    has_associated_pragma = 0; 
    is_local_to_function = 0; 
    is_class_member = 0; 
    name_has_been_mangled = 0; 
    nested_type_mangling_has_been_done = 0; 
  }; 
  dec_supp = 0x1405c340; 
  next = 0x0; 
  based_types = 0x0; 
  size = 1; 
  alignment = '\001'; 
  kind = '\b'; 
  used_in_exception = 0; 
  declared_in_function_prototype = 0; 
  prototype_scope_types_if_any_promoted = 0; 
  referenced_by_namespace_placeholder_typeref = 0; 
  typeinfo_var = 0x0; 
  variant = union  { 
    integer = struct  { 
      int_kind = '\000'; 
      explicitly_signed = 0; 
      enum_type = 0; 
      wchar_t_type = 0; 
      bool_type = 0; 
      avoid_codecenter_warnings = 0; 
      enum_info = union  { 
        constant_list = 0x140496b8; 
        affiliated_type = 0x140496b8; 
      }; 
    }; 
    float_kind = '\000'; 
    pointer = struct  { 
      type = 0x0; 
      base_variable = 0x140496b8; 
      is_reference = '\000'; 
    }; 
    routine = struct  { 
      return_type = 0x0; 
      extra_info = 0x140496b8; 
    }; 
    array = struct  { 
      element_type = 0x0; 
      is_variable_size_array = '\270'; 
      variant = union  { 
        number_of_elements = 6400; 
        element_count_expr = 0x1900; 
      }; 
    }; 
    class_struct_union = struct  { 
      field_list = 0x0; 
      extra_info = 0x140496b8; 
      any_const_member = 0; 
      any_virtual_base_classes = 0; 
      abstract = 0; 
      any_virtual_functions = 0; 
      any_pure_virtual_functions = 0; 
      any_virtual_functions_including_in_base_classes = 0; 
      referenced_by_class_instantiation_placeholder_typeref = 0; 
      nested_class_defined_outside_of_parent = 0; 
      originally_unnamed = 1; 
      is_specialized = 0; 
      specialized_with_old_syntax = 0; 
      definition_needed = 1; 
      keep_definition_in_il = 1; 
      avoid_codecenter_warnings = 0; 
      max_member_alignment = '\000'; 
    }; 
    typeref = struct  { 
      type = 0x0; 
      orig_type = 0x140496b8; 
      qualifiers = 0; 
      is_placeholder_for_class_instantiation = 0; 
      is_placeholder_for_namespace_type = 0; 
      is_placeholder_for_nested_class_def = 0; 
      explicit_memory_attribute_made_implicit = 1; 
      avoid_codecenter_warnings = 0; 
    }; 
    ptr_to_member = struct  { 
      class_of_which_a_member = 0x0; 
      type = 0x140496b8; 
    }; 
    template_param = struct  { 
      kind = '\000'; 
      extra_info = 0x140496b8; 
    }; 
  }; 
}

T.RTitleUserPersonal
Name
DateLines
814.1TLE::MURRAYWanfang MurrayMon Feb 24 1997 08:085

Thanks for reporting this.  We will look into this.

Wanfang