OpenROAD
OpenROAD copied to clipboard
gui::Gui::get() is called when enabled is false()
Describe the bug
Per https://github.com/The-OpenROAD-Project/OpenROAD/pull/8720#issuecomment-3447874915, gui::Gui::get() should only be called when gui::Gui::enabled() is true.
PR https://github.com/The-OpenROAD-Project/OpenROAD/pull/8747 adds a warning and stacktrace (when compiled with Bazel) to locate places where this is not true.
When compiling said PR with GUI enabled, there are multiple warnings suggesting a violation of the gui::Gui::get() contract.
Expected Behavior
No warnings are reported.
Environment
N/A
To Reproduce
git clone [email protected]:The-OpenROAD-Project/OpenROAD.git OpenROAD-upstream
cd OpenROAD-upstream
git fetch origin pull/8747/head:pr_8747
git switch pr_8747
git submodule update --init
bazelisk build -c opt //:openroad --//:platform=gui
./bazel-bin/openroad
Relevant log output
> ./bazel-bin/openroad
[WARNING GUI-0150] Internal Error: gui::Gui::Get() called when enabled() is false
0x55a79baa5c1e: gui::HeatMapDataSource::registerHeatMap()
0x55a79c8977d0: grt::GlobalRouter::initGui()
0x55a79a5ffa29: grt::initGui()
0x55a79a101bac: ord::OpenRoad::init()
0x55a79a09fbf5: ord::tclInit()
0x55a79d8f6cea: Tcl_MainEx
0x55a79a09e4d6: main
0x7fd522d24ca8: [unknown]
[WARNING GUI-0150] Internal Error: gui::Gui::Get() called when enabled() is false
0x55a79baa5c1e: gui::HeatMapDataSource::registerHeatMap()
0x55a79a5ffa29: grt::initGui()
0x55a79a101bac: ord::OpenRoad::init()
0x55a79a09fbf5: ord::tclInit()
0x55a79d8f6cea: Tcl_MainEx
0x55a79a09e4d6: main
0x7fd522d24ca8: [unknown]
[WARNING GUI-0150] Internal Error: gui::Gui::Get() called when enabled() is false
0x55a79baa5c1e: gui::HeatMapDataSource::registerHeatMap()
0x55a79b8bc060: psm::PDNSim::PDNSim()
0x55a79a101e7e: ord::OpenRoad::init()
0x55a79a09fbf5: ord::tclInit()
0x55a79d8f6cea: Tcl_MainEx
0x55a79a09e4d6: main
0x7fd522d24ca8: [unknown]
[WARNING GUI-0150] Internal Error: gui::Gui::Get() called when enabled() is false
0x55a79ba11580: gui::initGui()
0x55a79a101f49: ord::OpenRoad::init()
0x55a79a09fbf5: ord::tclInit()
0x55a79d8f6cea: Tcl_MainEx
0x55a79a09e4d6: main
0x7fd522d24ca8: [unknown]
[WARNING GUI-0150] Internal Error: gui::Gui::Get() called when enabled() is false
0x55a79baa5c1e: gui::HeatMapDataSource::registerHeatMap()
0x55a79ba0faa1: gui::Gui::init()
0x55a79a101f49: ord::OpenRoad::init()
0x55a79a09fbf5: ord::tclInit()
0x55a79d8f6cea: Tcl_MainEx
0x55a79a09e4d6: main
0x7fd522d24ca8: [unknown]
[WARNING GUI-0150] Internal Error: gui::Gui::Get() called when enabled() is false
0x55a79baa5c1e: gui::HeatMapDataSource::registerHeatMap()
0x55a79ba0fae1: gui::Gui::init()
0x55a79a101f49: ord::OpenRoad::init()
0x55a79a09fbf5: ord::tclInit()
0x55a79d8f6cea: Tcl_MainEx
0x55a79a09e4d6: main
0x7fd522d24ca8: [unknown]
[WARNING GUI-0150] Internal Error: gui::Gui::Get() called when enabled() is false
0x55a79baac46b: gui::PowerDensityDataSource::PowerDensityDataSource()
0x55a79ba0fafc: gui::Gui::init()
0x55a79a101f49: ord::OpenRoad::init()
0x55a79a09fbf5: ord::tclInit()
0x55a79d8f6cea: Tcl_MainEx
0x55a79a09e4d6: main
0x7fd522d24ca8: [unknown]
[WARNING GUI-0150] Internal Error: gui::Gui::Get() called when enabled() is false
0x55a79baa5c1e: gui::HeatMapDataSource::registerHeatMap()
0x55a79a101f49: ord::OpenRoad::init()
0x55a79a09fbf5: ord::tclInit()
0x55a79d8f6cea: Tcl_MainEx
0x55a79a09e4d6: main
0x7fd522d24ca8: [unknown]
[WARNING GUI-0150] Internal Error: gui::Gui::Get() called when enabled() is false
0x55a79baac880: gui::HeatMapDataSource::~HeatMapDataSource()
0x55a79a56f246: gpl::GraphicsImpl::~GraphicsImpl()
0x55a79a56c687: gpl::initReplaceGraphics()
0x55a79a101f91: ord::OpenRoad::init()
0x55a79a09fbf5: ord::tclInit()
0x55a79d8f6cea: Tcl_MainEx
0x55a79a09e4d6: main
0x7fd522d24ca8: [unknown]
[WARNING GUI-0150] Internal Error: gui::Gui::Get() called when enabled() is false
0x55a79ba0d068: gui::Renderer::~Renderer()
0x55a79baac81e: gui::HeatMapRenderer::~HeatMapRenderer()
0x55a79baac93f: gui::HeatMapDataSource::~HeatMapDataSource()
0x55a79a56f246: gpl::GraphicsImpl::~GraphicsImpl()
0x55a79a56c687: gpl::initReplaceGraphics()
0x55a79a101f91: ord::OpenRoad::init()
0x55a79a09fbf5: ord::tclInit()
0x55a79d8f6cea: Tcl_MainEx
0x55a79a09e4d6: main
0x7fd522d24ca8: [unknown]
[WARNING GUI-0150] Internal Error: gui::Gui::Get() called when enabled() is false
0x55a79ba0d068: gui::Renderer::~Renderer()
0x55a79a56f24e: gpl::GraphicsImpl::~GraphicsImpl()
0x55a79a56c687: gpl::initReplaceGraphics()
0x55a79a101f91: ord::OpenRoad::init()
0x55a79a09fbf5: ord::tclInit()
0x55a79d8f6cea: Tcl_MainEx
0x55a79a09e4d6: main
0x7fd522d24ca8: [unknown]
OpenROAD HDL-HEAD bazel-build
Features included (+) or not (-): -GPU +GUI -Python
This program is licensed under the BSD-3 license. See the LICENSE file for details.
Components of this program may be licensed under more restrictive licenses which must be honored.
% gui::show
[WARNING GUI-0150] Internal Error: gui::Gui::Get() called when enabled() is false
0x55a79bb8411f: show()
0x55a79bb96552: _wrap_show()
0x55a79d8402a2: TclEvalObjEx
0x55a79d8d6481: Tcl_RecordAndEvalObj
0x55a79d8f7017: Tcl_MainEx
0x55a79a09e4d6: main
0x7fd522d24ca8: [unknown]
[WARNING GUI-0150] Internal Error: gui::Gui::Get() called when enabled() is false
0x55a79ba0eafd: gui::startGui()
0x55a79ba0ab56: gui::Gui::showGui()
0x55a79bb841c0: show()
0x55a79bb96552: _wrap_show()
0x55a79d8402a2: TclEvalObjEx
0x55a79d8d6481: Tcl_RecordAndEvalObj
0x55a79d8f7017: Tcl_MainEx
0x55a79a09e4d6: main
0x7fd522d24ca8: [unknown]
[WARNING GUI-0150] Internal Error: gui::Gui::Get() called when enabled() is false
0x55a79ba1ab80: gui::DisplayControls::DisplayControls()
0x55a79bad9353: gui::MainWindow::MainWindow()
0x55a79ba0eb94: gui::startGui()
0x55a79ba0ab56: gui::Gui::showGui()
0x55a79bb841c0: show()
0x55a79bb96552: _wrap_show()
0x55a79d8402a2: TclEvalObjEx
0x55a79d8d6481: Tcl_RecordAndEvalObj
0x55a79d8f7017: Tcl_MainEx
0x55a79a09e4d6: main
[WARNING GUI-0150] Internal Error: gui::Gui::Get() called when enabled() is false
0x55a79ba1ab8a: gui::DisplayControls::DisplayControls()
0x55a79bad9353: gui::MainWindow::MainWindow()
0x55a79ba0eb94: gui::startGui()
0x55a79ba0ab56: gui::Gui::showGui()
0x55a79bb841c0: show()
0x55a79bb96552: _wrap_show()
0x55a79d8402a2: TclEvalObjEx
0x55a79d8d6481: Tcl_RecordAndEvalObj
0x55a79d8f7017: Tcl_MainEx
0x55a79a09e4d6: main
[WARNING GUI-0150] Internal Error: gui::Gui::Get() called when enabled() is false
0x55a79bad93c3: gui::MainWindow::MainWindow()
0x55a79ba0eb94: gui::startGui()
0x55a79ba0ab56: gui::Gui::showGui()
0x55a79bb841c0: show()
0x55a79bb96552: _wrap_show()
0x55a79d8402a2: TclEvalObjEx
0x55a79d8d6481: Tcl_RecordAndEvalObj
0x55a79d8f7017: Tcl_MainEx
0x55a79a09e4d6: main
0x7fd522d24ca8: [unknown]
[WARNING GUI-0150] Internal Error: gui::Gui::Get() called when enabled() is false
0x55a79ba96562: gui::ClockWidget::hideEvent()
0x55a79bc82960: QWidget::event()
0x55a79bd3e0a0: QDockWidget::event()
0x55a79bc37fb4: QApplicationPrivate::notify_helper()
0x55a79bc38e17: QApplication::notify()
0x55a79ba11f00: gui::SafeApplication::notify()
0x55a79c51b30f: QCoreApplication::notifyInternal2()
0x55a79bc8084d: QWidgetPrivate::hide_helper()
0x55a79bc818a6: QWidgetPrivate::setVisible()
0x55a79bc81289: QWidget::setVisible()
[WARNING GUI-0150] Internal Error: gui::Gui::Get() called when enabled() is false
0x55a79badfdaf: gui::MainWindow::createMenus()
0x55a79badc22c: gui::MainWindow::MainWindow()
0x55a79ba0eb94: gui::startGui()
0x55a79ba0ab56: gui::Gui::showGui()
0x55a79bb841c0: show()
0x55a79bb96552: _wrap_show()
0x55a79d8402a2: TclEvalObjEx
0x55a79d8d6481: Tcl_RecordAndEvalObj
0x55a79d8f7017: Tcl_MainEx
0x55a79a09e4d6: main
Screenshots
No response
Additional Context
No response