Bladeren bron

Ladybird, WebContent: Add option in debug menu to output GC graph dump

Aliaksandr Kalenik 1 jaar geleden
bovenliggende
commit
24edb7c97f
2 gewijzigde bestanden met toevoegingen van 10 en 0 verwijderingen
  1. 6 0
      Ladybird/Qt/BrowserWindow.cpp
  2. 4 0
      Userland/Services/WebContent/ConnectionFromClient.cpp

+ 6 - 0
Ladybird/Qt/BrowserWindow.cpp

@@ -278,6 +278,12 @@ BrowserWindow::BrowserWindow(Optional<URL> const& initial_url, Browser::CookieJa
         debug_request("collect-garbage");
     });
 
+    auto* dump_gc_graph_action = new QAction("Dump GC graph", this);
+    debug_menu->addAction(dump_gc_graph_action);
+    QObject::connect(dump_gc_graph_action, &QAction::triggered, this, [this] {
+        debug_request("dump-gc-graph");
+    });
+
     auto* clear_cache_action = new QAction("Clear &Cache", this);
     clear_cache_action->setShortcut(QKeySequence(Qt::CTRL | Qt::SHIFT | Qt::Key_C));
     clear_cache_action->setIcon(QIcon(QString("%1/res/icons/browser/clear-cache.png").arg(s_serenity_resource_root.characters())));

+ 4 - 0
Userland/Services/WebContent/ConnectionFromClient.cpp

@@ -410,6 +410,10 @@ void ConnectionFromClient::debug_request(DeprecatedString const& request, Deprec
         Web::Bindings::main_thread_vm().heap().collect_garbage(JS::Heap::CollectionType::CollectGarbage, true);
     }
 
+    if (request == "dump-gc-graph") {
+        Web::Bindings::main_thread_vm().heap().dump_graph();
+    }
+
     if (request == "set-line-box-borders") {
         bool state = argument == "on";
         m_page_host->set_should_show_line_box_borders(state);