Skip to content

OpenROAD GUI Crash When Using the "Ruler" After Loading a 3DBX File #9089

@LeeJaKang

Description

@LeeJaKang

Describe the bug

After loading a 3DBX file using read_3dbx, OpenROAD terminates when the "Tools/Ruler" is clicked, producing the error log shown below.

"""
Signal 11 received
Stack trace:
0# 0x00000000011DACA3 in openroad
1# 0x00007F61955075B0 in /lib64/libc.so.6
2# odb::dbBlock::getDieArea() in openroad
3# gui::LayoutViewer::searchNearestEdge(odb::Point const&, bool, bool) in openroad
4# gui::LayoutViewer::mouseMoveEvent(QMouseEvent*) in openroad
5# QWidget::event(QEvent*) in /lib64/libQt5Widgets.so.5
6# QApplicationPrivate::notify_helper(QObject*, QEvent*) in /lib64/libQt5Widgets.so.5
7# QApplication::notify(QObject*, QEvent*) in /lib64/libQt5Widgets.so.5
8# gui::SafeApplication::notify(QObject*, QEvent*) in openroad
9# QCoreApplication::notifyInternal2(QObject*, QEvent*) in /lib64/libQt5Core.so.5
10# QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer&, bool, bool) in /lib64/libQt5Widgets.so.5
11# 0x00007F61980A55CA in /lib64/libQt5Widgets.so.5
12# 0x00007F61980A8A05 in /lib64/libQt5Widgets.so.5
13# QApplicationPrivate::notify_helper(QObject*, QEvent*) in /lib64/libQt5Widgets.so.5
14# QApplication::notify(QObject*, QEvent*) in /lib64/libQt5Widgets.so.5
15# gui::SafeApplication::notify(QObject*, QEvent*) in openroad
16# QCoreApplication::notifyInternal2(QObject*, QEvent*) in /lib64/libQt5Core.so.5
17# QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) in /lib64/libQt5Gui.so.5
18# QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) in /lib64/libQt5Gui.so.5
19# QWindowSystemInterface::sendWindowSystemEvents(QFlagsQEventLoop::ProcessEventsFlag) in /lib64/libQt5Gui.so.5
20# 0x00007F617DFA385E in /lib64/libQt5XcbQpa.so.5
21# g_main_context_dispatch in /lib64/libglib-2.0.so.0
22# 0x00007F6191C4AEA8 in /lib64/libglib-2.0.so.0
23# g_main_context_iteration in /lib64/libglib-2.0.so.0
24# QEventDispatcherGlib::processEvents(QFlagsQEventLoop::ProcessEventsFlag) in /lib64/libQt5Core.so.5
25# QEventLoop::exec(QFlagsQEventLoop::ProcessEventsFlag) in /lib64/libQt5Core.so.5
26# QCoreApplication::exec() in /lib64/libQt5Core.so.5
27# gui::startGui(int&, char**, Tcl_Interp*, std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&, bool, bool, bool) in openroad
28# 0x00000000011D9E65 in openroad
29# Tcl_MainEx in /home/tool/gnu/tcl/tcl8.6.6/lib/libtcl.so
30# main in openroad
31# __libc_start_main in /lib64/libc.so.6
32# _start in openroad
Segmentation fault (core dumped)
"""

Based on the error log, this issue appears to occur because the 3DBX file does not include DEF information, leaving the design without die area (or floorplan) data, and the GUI crashes when it attempts to access this missing information.

Expected Behavior

Various features should be fully usable in the OpenROAD GUI when working with 3DBX. (without DEF files?)

Environment

OS: Rocky Linux 8.1
OpenROAD's commit that I used: 369e8f011bf34f19d2b655efcac8c25496c28d45

To Reproduce

openroad -gui
read_3dbx {FILENAME}.3dbx

click "Tool/Ruler"

Relevant log output

Screenshots

No response

Additional Context

No response

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions