Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Segfault in rz_core_task_sync_begin() when run after installing, not when run from build directory #3229

Open
1 of 3 tasks
FalcoGer opened this issue Aug 16, 2023 · 3 comments
Assignees

Comments

@FalcoGer
Copy link

FalcoGer commented Aug 16, 2023

Environment information

  • Operating System: Ubuntu Mate 22.04
  • Cutter version: cutter 2.3.0-stable-ba2c941
  • Obtained from:
    • Built from source
    • Downloaded release from Cutter website or GitHub
    • Distribution repository
  • File format: N/A

Describe the bug

Cutter crashes on startup, even without a file to open.

To Reproduce

Steps to reproduce the behavior:

  1. Install from source
  2. Start cutter from terminal
  3. ???
  4. no profit!

Expected behavior

Cutter application starts.

Screenshots

N/A

Additional context

  • rizin installed separately, but from the cutter git submodule. rizin itself works fine.
  • compiled with clang/clang++
  • rizin 5.x and cutter 2.2.x were installed beforehand and were working fine

Backtrace from debug build.

pwndbg> run
Starting program: /usr/local/bin/cutter
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[New Thread 0x7ffff0a0a640 (LWP 4139258)]
[New Thread 0x7fffeae9b640 (LWP 4139259)]
[New Thread 0x7fffea69a640 (LWP 4139260)]
[New Thread 0x7fffe9e99640 (LWP 4139261)]
[New Thread 0x7fffe9447640 (LWP 4139262)]
[New Thread 0x7fffe888b640 (LWP 4139265)]
[New Thread 0x7fffd9ddf640 (LWP 4139266)]
[New Thread 0x7fffd95de640 (LWP 4139267)]
[New Thread 0x7fffd8ddd640 (LWP 4139268)]
[New Thread 0x7fffcd00d640 (LWP 4139269)]
[New Thread 0x7fffcc80c640 (LWP 4139270)]
[New Thread 0x7fffb7d0f640 (LWP 4139275)]
"0.6.0" "0.6.0"

Thread 1 "cutter" received signal SIGSEGV, Segmentation fault.
0x00007ffff7d4ca71 in rz_core_task_sync_begin () from /usr/local/lib/librz_core.so.0.6
LEGEND: STACK | HEAP | CODE | DATA | RWX | RODATA
──────────────────────────────────────────────────────────────────────────────────[ REGISTERS ]──────────────────────────────────────────────────────────────────────────────────
 RAX  0x0
*RBX  0x55555698db48 —▸ 0x555556508030 ◂— 0x0
*RCX  0x7ffff4712c9b (pthread_sigmask+75) ◂— mov    edx, eax
 RDX  0x0
 RDI  0x0
*RSI  0x7fffffffd210 ◂— 0x8000000
*R8   0x7fffffffd210 ◂— 0x8000000
*R9   0x555556439b30 ◂— 0x7fff003f3e3f /* '?>?' */
*R10  0x7ffff6b41e58 ◂— 0xe0012000046d4
*R11  0x7ffff6bd07b0 (rz_th_lock_enter) ◂— endbr64
*R12  0x7fffffffd210 ◂— 0x8000000
*R13  0x7fffffffd190 ◂— 0x0
*R14  0x555555b51f18 (__do_global_dtors_aux_fini_array_entry) —▸ 0x55555564a580 (__do_global_dtors_aux) ◂— endbr64
*R15  0x7ffff7ffd040 (_rtld_global) —▸ 0x7ffff7ffe2e0 —▸ 0x555555554000 ◂— 0x10102464c457f
 RBP  0x0
*RSP  0x7fffffffd190 ◂— 0x0
*RIP  0x7ffff7d4ca71 (rz_core_task_sync_begin+97) ◂— mov    dword ptr [rbp + 0xc], 0
───────────────────────────────────────────────────────────────────────────────────[ DISASM ]────────────────────────────────────────────────────────────────────────────────────
 ► 0x7ffff7d4ca71 <rz_core_task_sync_begin+97>     mov    dword ptr [rbp + 0xc], 0
   0x7ffff7d4ca78 <rz_core_task_sync_begin+104>    mov    rdi, qword ptr [rbx + 0x58]
   0x7ffff7d4ca7c <rz_core_task_sync_begin+108>    mov    qword ptr [rbp + 0x38], 0
   0x7ffff7d4ca84 <rz_core_task_sync_begin+116>    call   rz_th_lock_leave@plt                <rz_th_lock_leave@plt>

   0x7ffff7d4ca89 <rz_core_task_sync_begin+121>    xor    edx, edx
   0x7ffff7d4ca8b <rz_core_task_sync_begin+123>    mov    edi, 2
   0x7ffff7d4ca90 <rz_core_task_sync_begin+128>    mov    rsi, r13
   0x7ffff7d4ca93 <rz_core_task_sync_begin+131>    call   rz_signal_sigmask@plt                <rz_signal_sigmask@plt>

   0x7ffff7d4ca98 <rz_core_task_sync_begin+136>    mov    rdi, rbp
   0x7ffff7d4ca9b <rz_core_task_sync_begin+139>    call   task_wakeup                <task_wakeup>

   0x7ffff7d4caa0 <rz_core_task_sync_begin+144>    mov    rax, qword ptr [rsp + 0x108]
────────────────────────────────────────────────────────────────────────────────────[ STACK ]────────────────────────────────────────────────────────────────────────────────────
00:0000│ r13 rsp 0x7fffffffd190 ◂— 0x0
... ↓            7 skipped
──────────────────────────────────────────────────────────────────────────────────[ BACKTRACE ]──────────────────────────────────────────────────────────────────────────────────
 ► f 0   0x7ffff7d4ca71 rz_core_task_sync_begin+97
   f 1   0x555555676221 CutterCore::initialize(bool)+65
   f 2   0x5555558345a2
   f 3   0x5555556737a0 main+336
   f 4   0x7ffff46a0d90 __libc_start_call_main+128
   f 5   0x7ffff46a0e40 __libc_start_main+128
   f 6   0x55555564a505 _start+37
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
pwndbg> bt full
#0  0x00007ffff7d4ca71 in rz_core_task_sync_begin () at /usr/local/lib/librz_core.so.0.6
#1  0x0000555555676221 in CutterCore::initialize(bool) (this=0x7fffffffd630, loadPlugins=true) at /home/username/repositories/hacking/cutter_disassembler/cutter/src/core/Cutter.cpp:202
        core = {
          core = 0x5555559464ef <PythonManager::initialize()+127>
        }
#2  0x00005555558345a2 in CutterApplication::CutterApplication(int&, char**) (this=0x7fffffffd618, argc=@0x7fffffffd7f8: 1, argv=0x7fffffffd918) at /home/username/repositories/hacking/cutter_disassembler/cutter/src/CutterApplication.cpp:116
        ret = 1
        rzversion = {
          static null = {<No data fields>},
          d = 0x5555566b53c0
        }
        localVersion = {
          static null = {<No data fields>},
          d = 0x5555566b28a0
        }
#3  0x00005555556737a0 in main(int, char**) (argc=1, argv=0x7fffffffd918) at /home/username/repositories/hacking/cutter_disassembler/cutter/src/Main.cpp:88
        a = Python Exception <class 'AttributeError'>: 'NoneType' object has no attribute 'pointer'
{
          <QApplication> = {<No data fields>},
          members of CutterApplication:
          static staticMetaObject = {
            d = {
              superdata = {
                direct = 0x7ffff7317fa0 <QApplication::staticMetaObject>
              },
              stringdata = 0x5555559a87a0 <qt_meta_stringdata_CutterApplication>,
              data = 0x5555559a87d0 <qt_meta_data_CutterApplication>,
              static_metacall = 0x55555564a5d0 <CutterApplication::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>,
              relatedMetaObjects = 0x0,
              extradata = 0x0
            }
          },
          m_FileAlreadyDropped = false,
          core = {
            <QObject> = {<No data fields>},
            members of CutterCore:
            static staticMetaObject = {
              d = {
                superdata = {
                  direct = 0x7ffff5123160 <QObject::staticMetaObject>
                },
                stringdata = 0x5555559a97f0 <qt_meta_stringdata_CutterCore>,
                data = 0x5555559a1f60 <qt_meta_data_CutterCore>,
                static_metacall = 0x55555564e430 <CutterCore::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>,
                relatedMetaObjects = 0x0,
                extradata = 0x0
              }
            },
            currentlyDebugging = false,
            currentlyEmulating = false,
            currentlyTracing = false,
            currentlyRemoteDebugging = false,
            currentlyAttachedToPID = -1,
            currentlyOpenFile = {
              static null = {<No data fields>},
              d = 0x7ffff4f78ae0 <QArrayData::shared_null>
            },
            regs = {
              <QListSpecialMethods<QString>> = {<No data fields>},
              members of QList<QString>:
              {
                p = {
                  static shared_null = {
                    ref = {
                      atomic = {
                        _q_value = std::atomic<int> = { -1 }
                      }
                    },
                    alloc = 0,
                    begin = 0,
                    end = 0,
                    array = {0x0}
                  },
                  d = 0x7ffff4f795f0 <QListData::shared_null>
                },
                d = 0x7ffff4f795f0 <QListData::shared_null>
              }
            },
            core_ = 0x55555698d5b0,
            coreMutex = <incomplete type>,
            coreLockDepth = 0,
            coreBed = 0x0,
            asyncTaskManager = 0x0,
            offsetPriorDebugging = 18446744073709551615,
            msgBox = <incomplete type>,
            decompilers = {
              <QListSpecialMethods<Decompiler*>> = {<No data fields>},
              members of QList<Decompiler*>:
              {
                p = {
                  static shared_null = {
                    ref = {
                      atomic = {
                        _q_value = std::atomic<int> = { -1 }
                      }
                    },
                    alloc = 0,
                    begin = 0,
                    end = 0,
                    array = {0x0}
                  },
                  d = 0x7ffff4f795f0 <QListData::shared_null>
                },
                d = 0x7ffff4f795f0 <QListData::shared_null>
              }
            },
            emptyGraph = false,
            bbHighlighter = 0x7ffff548e140,
            iocache = false,
            biHighlighter = {
              biMap = std::map with 0 elements
            },
            debugTask = {
              value = 0x0,
              d = 0x0
            },
            debugTaskDialog = 0x0
          },
          mainWindow = 0x0,
          clOptions = {
            args = {
              <QList<QString>> = {
                <QListSpecialMethods<QString>> = {<No data fields>},
                members of QList<QString>:
                {
                  p = {
                    static shared_null = {
                      ref = {
                        atomic = {
                          _q_value = std::atomic<int> = { -1 }
                        }
                      },
                      alloc = 0,
                      begin = 0,
                      end = 0,
                      array = {0x0}
                    },
                    d = 0x7ffff4f795f0 <QListData::shared_null>
                  },
                  d = 0x7ffff4f795f0 <QListData::shared_null>
                }
              }, <No data fields>},
            analysisLevel = AutomaticAnalysisLevel::Ask,
            fileOpenOptions = {
              filename = {
                static null = {<No data fields>},
                d = 0x7ffff4f78ae0 <QArrayData::shared_null>
              },
              projectFile = {
                static null = {<No data fields>},
                d = 0x7ffff4f78ae0 <QArrayData::shared_null>
              },
              useVA = true,
              binLoadAddr = 18446744073709551615,
              mapAddr = 18446744073709551615,
              arch = {
                static null = {<No data fields>},
                d = 0x7ffff4f78ae0 <QArrayData::shared_null>
              },
              cpu = {
                static null = {<No data fields>},
                d = 0x7ffff4f78ae0 <QArrayData::shared_null>
              },
              bits = 0,
              os = {
                static null = {<No data fields>},
                d = 0x7ffff4f78ae0 <QArrayData::shared_null>
              },
              endian = (unknown: 0xf7ffe650),
              writeEnabled = false,
              loadBinInfo = true,
              forceBinPlugin = {
                static null = {<No data fields>},
                d = 0x7ffff4f78ae0 <QArrayData::shared_null>
              },
              demangle = true,
              pdbFile = {
                static null = {<No data fields>},
                d = 0x7ffff4f78ae0 <QArrayData::shared_null>
              },
              script = {
                static null = {<No data fields>},
                d = 0x7ffff4f78ae0 <QArrayData::shared_null>
              },
              analysisCmd = {
                <QListSpecialMethods<CommandDescription>> = {<No data fields>},
                members of QList<CommandDescription>:
                {
                  p = {
                    static shared_null = {
                      ref = {
                        atomic = {
                          _q_value = std::atomic<int> = { -1 }
                        }
                      },
                      alloc = 0,
                      begin = 0,
                      end = 0,
                      array = {0x0}
                    },
                    d = 0x55555656ccd0
                  },
                  d = 0x55555656ccd0
                }
              },
              shellcode = {
                static null = {<No data fields>},
                d = 0x7ffff4f78ae0 <QArrayData::shared_null>
              }
            },
            pythonHome = {
              static null = {<No data fields>},
              d = 0x7ffff4f78ae0 <QArrayData::shared_null>
            },
            outputRedirectionEnabled = true,
            enableCutterPlugins = true,
            enableRizinPlugins = true
          }
        }
        ret = 21845
#4  0x00007ffff46a0d90 in __libc_start_call_main (main=main@entry=0x555555673650 <main(int, char**)>, argc=argc@entry=1, argv=argv@entry=0x7fffffffd918) at ../sysdeps/nptl/libc_start_call_main.h:58
        self = <optimized out>
        result = <optimized out>
        unwind_buf = {
          cancel_jmp_buf = {{
              jmp_buf = {0, -1064248252882390049, 140737488345368, 93824993408592, 93824998514456, 140737354125376, 1064248253895111647, 1064238256928289759},
              mask_was_saved = 0
            }},
          priv = {
            pad = {0x0, 0x0, 0x55555564a4ca <__cxx_global_var_init()+42>, 0x0},
            data = {
              prev = 0x0,
              cleanup = 0x0,
              canceltype = 1432659146
            }
          }
        }
        not_first_call = <optimized out>
#5  0x00007ffff46a0e40 in __libc_start_main_impl (main=0x555555673650 <main(int, char**)>, argc=1, argv=0x7fffffffd918, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fffffffd908) at ../csu/libc-start.c:392
#6  0x000055555564a505 in _start ()
@FalcoGer
Copy link
Author

Possibly related. When I run cutter from the build directory and then close it, a similar uncaught exception occurs.

Thread 1 "cutter" received signal SIGSEGV, Segmentation fault.
0x00007ffff76d9c42 in PyErr_Occurred () from /lib/x86_64-linux-gnu/libpython3.10.so.1.0
LEGEND: STACK | HEAP | CODE | DATA | RWX | RODATA
──────────────────────────────────────────────────────────────────────────────────[ REGISTERS ]──────────────────────────────────────────────────────────────────────────────────
 RAX  0x0
*RBX  0x55555871e7e0 —▸ 0x555555b6f428 —▸ 0x55555599a8d0 ◂— push   rbp
*RCX  0x7ffff57961e0 ◂— 0x8
*RDX  0xe
*RDI  0x7fffffffd358 ◂— 0x7f00b4ec0fc0
*RSI  0x7fffffffd3b0 —▸ 0x7ffff585d160 (QObject::staticMetaObject) ◂— 0x0
*R8   0x7ffff585d160 (QObject::staticMetaObject) ◂— 0x0
*R9   0x555555990970 ◂— push   rbp
*R10  0x7
*R11  0x209
*R12  0x7ffff586c7e0 ◂— 0x0
*R13  0x55556cd84460 —▸ 0x55556cd84400 —▸ 0x55556cd843a0 —▸ 0x55556cd80d10 —▸ 0x55556cd7f9d0 ◂— ...
*R14  0x555555bab980 ◂— 0x100000000
 R15  0x0
*RBP  0x7fffffffd370 —▸ 0x7ffff586c948 ◂— 0x1
*RSP  0x7fffffffd2c8 —▸ 0x5555559909b5 ◂— mov    qword ptr [rbp - 0x50], rax
*RIP  0x7ffff76d9c42 (PyErr_Occurred+18) ◂— mov    rax, qword ptr [rax + 0x58]
───────────────────────────────────────────────────────────────────────────────────[ DISASM ]────────────────────────────────────────────────────────────────────────────────────
 ► 0x7ffff76d9c42 <PyErr_Occurred+18>    mov    rax, qword ptr [rax + 0x58]
   0x7ffff76d9c46 <PyErr_Occurred+22>    ret

   0x7ffff76d9c47                        nop    word ptr [rax + rax]
   0x7ffff76d9c50                        lea    rdi, [rip + 0x513c69]         <_PyRuntime>
   0x7ffff76d9c57                        lea    rax, [rip + 0x513c62]         <_PyRuntime>
   0x7ffff76d9c5e                        cmp    rax, rdi
   0x7ffff76d9c61                        je     0x7ffff76d9c78                <0x7ffff76d9c78>
    ↓
   0x7ffff76d9c78                        ret

   0x7ffff76d9c79                        nop    dword ptr [rax]
   0x7ffff76d9c80                        lea    rdi, [rip + 0x513c39]         <_PyRuntime>
   0x7ffff76d9c87                        lea    rsi, [rip + 0x513c32]         <_PyRuntime>
────────────────────────────────────────────────────────────────────────────────────[ STACK ]────────────────────────────────────────────────────────────────────────────────────
00:0000│ rsp 0x7fffffffd2c8 —▸ 0x5555559909b5 ◂— mov    qword ptr [rbp - 0x50], rax
01:0008│     0x7fffffffd2d0 —▸ 0x7fffb606d470 ◂— 0x2
02:0010│     0x7fffffffd2d8 —▸ 0x7fffb4ec0f40 ◂— 0x1
03:0018│     0x7fffffffd2e0 —▸ 0x55556cd84460 —▸ 0x55556cd84400 —▸ 0x55556cd843a0 —▸ 0x55556cd80d10 ◂— ...
04:0020│     0x7fffffffd2e8 —▸ 0x555555bab980 ◂— 0x100000000
05:0028│     0x7fffffffd2f0 ◂— 0x0
06:0030│     0x7fffffffd2f8 —▸ 0x7ffff77776bf (PyDict_GetItemWithError+79) ◂— test   rax, rax
07:0038│     0x7fffffffd300 —▸ 0x555557fdade0 —▸ 0x555557fde7a0 ◂— 0x2
──────────────────────────────────────────────────────────────────────────────────[ BACKTRACE ]──────────────────────────────────────────────────────────────────────────────────
 ► f 0   0x7ffff76d9c42 PyErr_Occurred+18
   f 1   0x5555559909b5
   f 2   0x7ffff55fd993 QObject::~QObject()+1075
   f 3   0x7ffff5b2fa1d
   f 4   0x7ffff55c9fd2 qt_call_post_routines()+274
   f 5   0x7ffff6e17df8 QApplication::~QApplication()+56
   f 6   0x555555839503 CutterApplication::~CutterApplication()+163
   f 7   0x5555556738f1 main+673
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
pwndbg> bt full
#0  0x00007ffff76d9c42 in PyErr_Occurred () at /lib/x86_64-linux-gnu/libpython3.10.so.1.0
#1  0x00005555559909b5 in CutterDockWidgetWrapper::disconnectNotify(QMetaMethod const&) (this=0x55555871e7e0, signal=...) at src/bindings/CutterBindings/cutterdockwidget_wrapper.cpp:374
        nameCache = {0x0, 0x0}
        funcName = 0x5555559cceed "disconnectNotify"
        gil = <incomplete type>
        pyOverride = {
          m_pyObj = 0x0
        }
        pyArgs = {
          m_pyObj = 0x555555bab980
        }
        pyResult = {
          m_pyObj = 0x55556cd84460
        }
#2  0x00007ffff55fd993 in QObject::~QObject() () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#3  0x00007ffff5b2fa1d in  () at /lib/x86_64-linux-gnu/libQt5Gui.so.5
#4  0x00007ffff55c9fd2 in qt_call_post_routines() () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#5  0x00007ffff6e17df8 in QApplication::~QApplication() () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#6  0x0000555555839503 in CutterApplication::~CutterApplication() (this=0x7fffffffd588) at /home/username/repositories/hacking/cutter_disassembler/cutter/src/CutterApplication.cpp:200
#7  0x00005555556738f1 in main(int, char**) (argc=1, argv=0x7fffffffd888) at /home/username/repositories/hacking/cutter_disassembler/cutter/src/Main.cpp:110
        a = Python Exception <class 'AttributeError'>: 'NoneType' object has no attribute 'pointer'
{
          <QApplication> = {<No data fields>},
          members of CutterApplication:
          static staticMetaObject = {
            d = {
              superdata = {
                direct = 0x7ffff733cfa0 <QApplication::staticMetaObject>
              },
              stringdata = 0x5555559a87a0 <qt_meta_stringdata_CutterApplication>,
              data = 0x5555559a87d0 <qt_meta_data_CutterApplication>,
              static_metacall = 0x55555564a5d0 <CutterApplication::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>,
              relatedMetaObjects = 0x0,
              extradata = 0x0
            }
          },
          m_FileAlreadyDropped = false,
          core = {
            <QObject> = {<No data fields>},
            members of CutterCore:
            static staticMetaObject = {
              d = {
                superdata = {
                  direct = 0x7ffff585d160 <QObject::staticMetaObject>
                },
                stringdata = 0x5555559a97f0 <qt_meta_stringdata_CutterCore>,
                data = 0x5555559a1f60 <qt_meta_data_CutterCore>,
                static_metacall = 0x55555564e430 <CutterCore::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>,
                relatedMetaObjects = 0x0,
                extradata = 0x0
              }
            },
            currentlyDebugging = false,
            currentlyEmulating = false,
            currentlyTracing = false,
            currentlyRemoteDebugging = false,
            currentlyAttachedToPID = -1,
            currentlyOpenFile = {
              static null = {<No data fields>},
              d = 0x7ffff56b2ae0 <QArrayData::shared_null>
            },
            regs = {
              <QListSpecialMethods<QString>> = {<No data fields>},
              members of QList<QString>:
              {
                p = {
                  static shared_null = {
                    ref = {
                      atomic = {
                        _q_value = std::atomic<int> = { -1 }
                      }
                    },
                    alloc = 0,
                    begin = 0,
                    end = 0,
                    array = {0x0}
                  },
                  d = 0x55555caf0ee0
                },
                d = 0x55555caf0ee0
              }
            },
            core_ = 0x555556982a00,
            coreMutex = <incomplete type>,
            coreLockDepth = 0,
            coreBed = 0x55555637a380,
            asyncTaskManager = 0x5555563f61d0,
            offsetPriorDebugging = 18446744073709551615,
            msgBox = <incomplete type>,
            decompilers = {
              <QListSpecialMethods<Decompiler*>> = {<No data fields>},
              members of QList<Decompiler*>:
              {
                p = {
                  static shared_null = {
                    ref = {
                      atomic = {
                        _q_value = std::atomic<int> = { -1 }
                      }
                    },
                    alloc = 0,
                    begin = 0,
                    end = 0,
                    array = {0x0}
                  },
                  d = 0x555556f5aa30
                },
                d = 0x555556f5aa30
              }
            },
            emptyGraph = false,
            bbHighlighter = 0x5555563f6190,
            iocache = false,
            biHighlighter = {
              biMap = std::map with 0 elements
            },
            debugTask = {
              value = 0x0,
              d = 0x0
            },
            debugTaskDialog = 0x0
          },
          mainWindow = 0x5555562fe0e0,
          clOptions = {
            args = {
              <QList<QString>> = {
                <QListSpecialMethods<QString>> = {<No data fields>},
                members of QList<QString>:
                {
                  p = {
                    static shared_null = {
                      ref = {
                        atomic = {
                          _q_value = std::atomic<int> = { -1 }
                        }
                      },
                      alloc = 0,
                      begin = 0,
                      end = 0,
                      array = {0x0}
                    },
                    d = 0x7ffff56b35f0 <QListData::shared_null>
                  },
                  d = 0x7ffff56b35f0 <QListData::shared_null>
                }
              }, <No data fields>},
            analysisLevel = AutomaticAnalysisLevel::Ask,
            fileOpenOptions = {
              filename = {
                static null = {<No data fields>},
                d = 0x7ffff56b2ae0 <QArrayData::shared_null>
              },
              projectFile = {
                static null = {<No data fields>},
                d = 0x7ffff56b2ae0 <QArrayData::shared_null>
              },
              useVA = true,
              binLoadAddr = 18446744073709551615,
              mapAddr = 18446744073709551615,
              arch = {
                static null = {<No data fields>},
                d = 0x7ffff56b2ae0 <QArrayData::shared_null>
              },
              cpu = {
                static null = {<No data fields>},
                d = 0x7ffff56b2ae0 <QArrayData::shared_null>
              },
              bits = 0,
              os = {
                static null = {<No data fields>},
                d = 0x7ffff56b2ae0 <QArrayData::shared_null>
              },
              endian = InitialOptions::Endianness::Little,
              writeEnabled = false,
              loadBinInfo = true,
              forceBinPlugin = {
                static null = {<No data fields>},
                d = 0x7ffff56b2ae0 <QArrayData::shared_null>
              },
              demangle = true,
              pdbFile = {
                static null = {<No data fields>},
                d = 0x7ffff56b2ae0 <QArrayData::shared_null>
              },
              script = {
                static null = {<No data fields>},
                d = 0x7ffff56b2ae0 <QArrayData::shared_null>
              },
              analysisCmd = {
                <QListSpecialMethods<CommandDescription>> = {<No data fields>},
                members of QList<CommandDescription>:
                {
                  p = {
                    static shared_null = {
                      ref = {
                        atomic = {
                          _q_value = std::atomic<int> = { -1 }
                        }
                      },
                      alloc = 0,
                      begin = 0,
                      end = 0,
                      array = {0x0}
                    },
                    d = 0x5555566a2490
                  },
                  d = 0x5555566a2490
                }
              },
              shellcode = {
                static null = {<No data fields>},
                d = 0x7ffff56b2ae0 <QArrayData::shared_null>
              }
            },
            pythonHome = {
              static null = {<No data fields>},
              d = 0x7ffff56b2ae0 <QArrayData::shared_null>
            },
            outputRedirectionEnabled = true,
            enableCutterPlugins = true,
            enableRizinPlugins = true
          }
        }
        ret = 0
#8  0x00007ffff4ddad90 in __libc_start_call_main (main=main@entry=0x555555673650 <main(int, char**)>, argc=argc@entry=1, argv=argv@entry=0x7fffffffd888) at ../sysdeps/nptl/libc_start_call_main.h:58
        self = <optimized out>
        result = <optimized out>
        unwind_buf = {
          cancel_jmp_buf = {{
              jmp_buf = {0, 2835742384854181698, 140737488345224, 93824993408592, 93824998514456, 140737354125376, -2835742385650882750, -2835722848708155582},
              mask_was_saved = 0
            }},
          priv = {
            pad = {0x0, 0x0, 0x0, 0x0},
            data = {
              prev = 0x0,
              cleanup = 0x0,
              canceltype = 0
            }
          }
        }
        not_first_call = <optimized out>
#9  0x00007ffff4ddae40 in __libc_start_main_impl (main=0x555555673650 <main(int, char**)>, argc=1, argv=0x7fffffffd888, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fffffffd878) at ../csu/libc-start.c:392
#10 0x000055555564a505 in _start ()

@FalcoGer
Copy link
Author

I recompiled with the bundled rizin option and now it doesn't blow up in my face anymore, but I'm confused as to why that is.

@FalcoGer
Copy link
Author

I managed to fix some of the issues.

Turns out rizin wasn't loading the ghidra plugin from ~/.local/share/rizin/plugins when installed bundled with cutter, so when cutter was loading that plugin, it caused a segfault.
to fix it I had to make a symlink ~/.local/lib/rizin to ~/.local/share/rizin and a symlink ~/.local/share/rizin/plugins to ~/.local/lib/x86_64-linux-gnu/rizin/plugins/

However compiling rizin by itself and then compiling and installing cutter still gives the initial segfault.

At least I have a functioning installation now.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants