Просмотр исходного кода

LibDebug: Support unnamed variables and types

We were supposed to already support unnamed types, but due to a
little typo, we were actually causing more problems :^)
FalseHonesty 4 лет назад
Родитель
Сommit
acbb119b27
1 измененных файлов с 4 добавлено и 2 удалено
  1. 4 2
      Userland/Libraries/LibDebug/DebugInfo.cpp

+ 4 - 2
Userland/Libraries/LibDebug/DebugInfo.cpp

@@ -215,7 +215,7 @@ static Optional<Dwarf::DIE> parse_variable_type_die(const Dwarf::DIE& variable_d
         variable_info.type_name = type_name.value().data.as_string;
         variable_info.type_name = type_name.value().data.as_string;
     } else {
     } else {
         dbgln("Unnamed DWARF type at offset: {}", type_die.offset());
         dbgln("Unnamed DWARF type at offset: {}", type_die.offset());
-        variable_info.name = "[Unnamed Type]";
+        variable_info.type_name = "[Unnamed Type]";
     }
     }
 
 
     return type_die;
     return type_die;
@@ -263,7 +263,9 @@ OwnPtr<DebugInfo::VariableInfo> DebugInfo::create_variable_info(const Dwarf::DIE
     }
     }
 
 
     NonnullOwnPtr<VariableInfo> variable_info = make<VariableInfo>();
     NonnullOwnPtr<VariableInfo> variable_info = make<VariableInfo>();
-    variable_info->name = variable_die.get_attribute(Dwarf::Attribute::Name).value().data.as_string;
+    auto name_attribute = variable_die.get_attribute(Dwarf::Attribute::Name);
+    if (name_attribute.has_value())
+        variable_info->name = name_attribute.value().data.as_string;
 
 
     auto type_die = parse_variable_type_die(variable_die, *variable_info);
     auto type_die = parse_variable_type_die(variable_die, *variable_info);