Prechádzať zdrojové kódy

ProfileViewer: Don't crash when we can't disassemble something

Andreas Kling 5 rokov pred
rodič
commit
dccfff8c19

+ 6 - 0
DevTools/ProfileViewer/DisassemblyModel.cpp

@@ -55,9 +55,15 @@ DisassemblyModel::DisassemblyModel(Profile& profile, ProfileNode& node)
     , m_node(node)
     , m_node(node)
 {
 {
     m_file = make<MappedFile>(profile.executable_path());
     m_file = make<MappedFile>(profile.executable_path());
+
+    if (!m_file->is_valid())
+        return;
+
     auto elf_loader = make<ELF::Loader>((const u8*)m_file->data(), m_file->size());
     auto elf_loader = make<ELF::Loader>((const u8*)m_file->data(), m_file->size());
 
 
     auto symbol = elf_loader->find_symbol(node.address());
     auto symbol = elf_loader->find_symbol(node.address());
+    if (!symbol.has_value())
+        return;
     ASSERT(symbol.has_value());
     ASSERT(symbol.has_value());
 
 
     auto view = symbol.value().raw_data();
     auto view = symbol.value().raw_data();