#1716·btop

MacOS M2 abort on startup

Author: jpopellCreated Jun 20, 2026Updated Sep 16, 2026
Labelsbug

Describe the bug

macOS Sonoma 14.8.3 arm64, abort on startup (attempt, immediate quit and [1] 50738 abort btop). If I hit 4 while it's drawing, it stays open, and then I can hit 4 again to toggle PROC back on, and it works; but obviously would much rather it just... work. (I don't use it often; per atuin, seems last was in April, and it worked fine then. Yesterday and today no.)

To Reproduce

It happens every time I run btop on above platform.

Expected behavior

Btop to open.

Info (please complete the following information):

  • btop++ version: 1.4.7
  • Binary: installed via Homebrew, it says compiled with llvm_clang++ (22.1.6)
  • Architecture: arm64
  • Platform: MacOS
  • MacOS version: Sonoma 14.8.3
  • Terminal used: Wezterm, but got the same issue in Terminal.app and Ghostty
  • Font used: not sure but fastfetch says .AppleSystemUIFont [System], Helvetica [User]

Additional context

Contents of ~/.local/state/btop.log:

===> btop++ v1.4.7
2026-06-20 (03:02:28) | INFO: Logger set to DEBUG
2026-06-20 (03:02:28) | DEBUG: Using locale C
2026-06-20 (03:02:28) | INFO: Running on /dev/ttys004
2026-06-20 (03:02:28) | DEBUG: TTY mode enabled: false
2026-06-20 (03:02:28) | DEBUG: get_sensors(): show_coretemp=true check_temp=true
2026-06-20 (03:02:28) | DEBUG: M1 sensors found

GDB Backtrace

╭─┐¹cpu┌────────────────────────────────────────────────────────────────────────────────────────────┐19:46:03┌/opt/homebrew/Cellar/llvm/22.1.6/bin/../include/c++/v1/deque:1577: libc++ Hardening assertion !empty() failed: deque::back called on an empty deque                                                                                                                                                              │
Process 49447 stopped                                                                                                                                                                                          │
* thread #5, stop reason = signal SIGABRT                                                                                                                                                                      │
    frame #0: 0x0000000187da25d0 libsystem_kernel.dylib`__pthread_kill + 8                                                                                                                                     │
libsystem_kernel.dylib`__pthread_kill:                                                                                                        ╭─┐M2┌──────────────────────────────────────────────────────────╮│
->  0x187da25d0 <+8>:  b.lo   0x187da25f0    ; <+40>                                                                                          │                                                               ││
    0x187da25d4 <+12>: pacibsp                                                                                                                │                                                               ││
    0x187da25d8 <+16>: stp    x29, x30, [sp, #-0x10]!                                                                                         │                                                               ││
    0x187da25dc <+20>: mov    x29, sp                                                                                                         │                                                               ││
(lldb) bt
* thread #5, stop reason = signal SIGABRT                                                                                                     │                                                               ││
  * frame #0: 0x0000000187da25d0 libsystem_kernel.dylib`__pthread_kill + 8                                                                    │                                                               ││
    frame #1: 0x0000000187ddabc8 libsystem_pthread.dylib`pthread_kill + 288                                                                   ╰───────────────────────────────────────────────────────────────╯│
    frame #2: 0x0000000187ce7a40 libsystem_c.dylib`abort + 180                                                                                                                                                 │
    frame #3: 0x0000000187d134e8 libc++.1.dylib`std::__1::__libcpp_verbose_abort(char const*, ...) + 92                                                                                                        │
    frame #4: 0x0000000100049da8 btop`Cpu::draw(Cpu::cpu_info const&, std::__1::vector<Gpu::gpu_info, std::__1::allocator<Gpu::gpu_info>> const&, bool, bool) + 26892                                          │
    frame #5: 0x0000000100006604 btop`___lldb_unnamed_symbol_100005fac + 1624                                                                                                                                  │
    frame #6: 0x0000000187ddaf3c libsystem_pthread.dylib`_pthread_start + 136──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
(lldb) quit
Quitting LLDB will kill one or more processes. Do you really want to proceed: [Y/n] y