public inbox for gdb-prs@sourceware.org
help / color / mirror / Atom feed
* [Bug backtrace/29395] New: blockframe.c:79: internal-error: get_frame_block: Assertion `bl != NULL' failed.
@ 2022-07-22 13:02 georgepee at gmail dot com
  2022-07-25 15:27 ` [Bug backtrace/29395] " georgepee at gmail dot com
                   ` (12 more replies)
  0 siblings, 13 replies; 14+ messages in thread
From: georgepee at gmail dot com @ 2022-07-22 13:02 UTC (permalink / raw)
  To: gdb-prs

https://sourceware.org/bugzilla/show_bug.cgi?id=29395

            Bug ID: 29395
           Summary: blockframe.c:79: internal-error: get_frame_block:
                    Assertion `bl != NULL' failed.
           Product: gdb
           Version: 11.1
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: backtrace
          Assignee: unassigned at sourceware dot org
          Reporter: georgepee at gmail dot com
  Target Milestone: ---

Starting with gdb 11.x, I encounter this assertion failure on certain
backtraces

../../gdb/blockframe.c:79: internal-error: get_frame_block: Assertion `bl !=
NULL' failed.


Not really knowing much about the GDB and DWARF structures, I did this as an
experiment and then GDB 11.x shows the same backtrace that GDB 10.x did. 

```
diff --git a/gdb/blockframe.c b/gdb/blockframe.c
index 50c464f44a2..0ee8313abea 100644
--- a/gdb/blockframe.c
+++ b/gdb/blockframe.c
@@ -70,13 +70,12 @@ get_frame_block (struct frame_info *frame, CORE_ADDR
*addr_in_block)

   inline_count = frame_inlined_callees (frame);

-  while (inline_count > 0)
+  while (bl && (inline_count > 0))
     {
       if (block_inlined_p (bl))
-   inline_count--;
+          inline_count--;

       bl = BLOCK_SUPERBLOCK (bl);
-      gdb_assert (bl != NULL);
     }

   return bl;
```

Comparing the values of frame_inlined_callees() from GDB 10.x and 11.x, I see
that they differ.

I also tried GDB 12.1, and it outputs this:
```
../../gdb/blockframe.c:79: internal-error: get_frame_block: Assertion `bl !=
NULL' failed.
A problem internal to GDB has been detected,
further debugging may prove unreliable.
----- Backtrace -----
0x55a42dc123b7 gdb_internal_backtrace_1
        ../../gdb/bt-utils.c:122
0x55a42dc123b7 _Z22gdb_internal_backtracev
        ../../gdb/bt-utils.c:168
0x55a42defaeec internal_vproblem
        ../../gdb/utils.c:394
0x55a42defb10a _Z15internal_verrorPKciS0_P13__va_list_tag
        ../../gdb/utils.c:471
0x55a42e034a71 _Z14internal_errorPKciS0_z
        ../../gdbsupport/errors.cc:55
0x55a42dbe9968 _Z15get_frame_blockP10frame_infoPm
        ../../gdb/blockframe.c:79
0x55a42dbe9968 _Z15get_frame_blockP10frame_infoPm
        ../../gdb/blockframe.c:55
0x55a42dc9e622 _ZN18dwarf_expr_context14get_frame_baseEPPKhPm
        ../../gdb/dwarf2/expr.c:782
0x55a42dca0346 _ZN18dwarf_expr_context16execute_stack_opEPKhS1_
        ../../gdb/dwarf2/expr.c:1821
0x55a42dca1c53 _ZN18dwarf_expr_context4evalEPKhm
        ../../gdb/dwarf2/expr.c:1250
0x55a42dca1dee
_ZN18dwarf_expr_context26push_dwarf_reg_entry_valueE24call_site_parameter_kind21call_site_parameter_ui
        ../../gdb/dwarf2/expr.c:914
0x55a42dca12bb _ZN18dwarf_expr_context16execute_stack_opEPKhS1_
        ../../gdb/dwarf2/expr.c:2259
0x55a42dca1c53 _ZN18dwarf_expr_context4evalEPKhm
        ../../gdb/dwarf2/expr.c:1250
0x55a42dca1ea2
_ZN18dwarf_expr_context8evaluateEPKhmbP18dwarf2_per_cu_dataP10frame_infoPK18property_addr_infoP4typeSA_l
        ../../gdb/dwarf2/expr.c:1089
0x55a42dcb43a0 dwarf2_evaluate_loc_desc_full
        ../../gdb/dwarf2/loc.c:1485
0x55a42dcb4e37
_Z24dwarf2_evaluate_loc_descP4typeP10frame_infoPKhmP18dwarf2_per_cu_dataP18dwarf2_per_objfileb
        ../../gdb/dwarf2/loc.c:1529
0x55a42dcb4e37 loclist_read_variable
        ../../gdb/dwarf2/loc.c:3859
0x55a42dd14279
_ZNK13language_defn14read_var_valueEP6symbolPK5blockP10frame_info
        ../../gdb/findvar.c:617
0x55a42de8bbd0
_Z14read_frame_argRK19frame_print_optionsP6symbolP10frame_infoP9frame_argS7_
        ../../gdb/stack.c:540
0x55a42de8c5c4 print_frame_args
        ../../gdb/stack.c:888
0x55a42de8ddb3 print_frame
        ../../gdb/stack.c:1391
0x55a42de8ddb3
_Z16print_frame_infoRK19frame_print_optionsP10frame_infoi10print_whatii
        ../../gdb/stack.c:1117
0x55a42de8f55a backtrace_command_1
        ../../gdb/stack.c:2069
0x55a42de8f55a backtrace_command
        ../../gdb/stack.c:2188
0x55a42dc3e8a7 _Z8cmd_funcP16cmd_list_elementPKci
        ../../gdb/cli/cli-decode.c:2514
0x55a42dee0766 _Z15execute_commandPKci
        ../../gdb/top.c:702
0x55a42dcfce9b _Z15command_handlerPKc
        ../../gdb/event-top.c:597
0x55a42dcfd1cc
_Z20command_line_handlerOSt10unique_ptrIcN3gdb13xfree_deleterIcEEE
        ../../gdb/event-top.c:800
0x55a42dcfd82c gdb_rl_callback_handler
        ../../gdb/event-top.c:229
0x7f9293ac8d4d ???
0x55a42dcfc2dd gdb_rl_callback_read_char_wrapper_noexcept
        ../../gdb/event-top.c:187
0x55a42dcfd720 gdb_rl_callback_read_char_wrapper
        ../../gdb/event-top.c:204
0x55a42dcfc06f _Z19stdin_event_handleriPv
        ../../gdb/event-top.c:524
0x55a42e035554 gdb_wait_for_event
        ../../gdbsupport/event-loop.cc:700
0x55a42e03563a gdb_wait_for_event
        ../../gdbsupport/event-loop.cc:596
0x55a42e03563a _Z16gdb_do_one_eventv
        ../../gdbsupport/event-loop.cc:237
0x55a42ddb0b54 start_event_loop
        ../../gdb/main.c:421
0x55a42ddb0b54 captured_command_loop
        ../../gdb/main.c:481
0x55a42ddb2564 captured_main
        ../../gdb/main.c:1351
0x55a42ddb2564 _Z8gdb_mainP18captured_main_args
        ../../gdb/main.c:1366
0x55a42db5970a main
        ../../gdb/gdb.c:32
```

-- 
You are receiving this mail because:
You are on the CC list for the bug.

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [Bug backtrace/29395] blockframe.c:79: internal-error: get_frame_block: Assertion `bl != NULL' failed.
  2022-07-22 13:02 [Bug backtrace/29395] New: blockframe.c:79: internal-error: get_frame_block: Assertion `bl != NULL' failed georgepee at gmail dot com
@ 2022-07-25 15:27 ` georgepee at gmail dot com
  2022-08-24 13:20 ` georgepee at gmail dot com
                   ` (11 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: georgepee at gmail dot com @ 2022-07-25 15:27 UTC (permalink / raw)
  To: gdb-prs

https://sourceware.org/bugzilla/show_bug.cgi?id=29395

George Pee <georgepee at gmail dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Priority|P2                          |P1

-- 
You are receiving this mail because:
You are on the CC list for the bug.

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [Bug backtrace/29395] blockframe.c:79: internal-error: get_frame_block: Assertion `bl != NULL' failed.
  2022-07-22 13:02 [Bug backtrace/29395] New: blockframe.c:79: internal-error: get_frame_block: Assertion `bl != NULL' failed georgepee at gmail dot com
  2022-07-25 15:27 ` [Bug backtrace/29395] " georgepee at gmail dot com
@ 2022-08-24 13:20 ` georgepee at gmail dot com
  2022-12-15 18:08 ` seth.pellegrino at gmail dot com
                   ` (10 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: georgepee at gmail dot com @ 2022-08-24 13:20 UTC (permalink / raw)
  To: gdb-prs

https://sourceware.org/bugzilla/show_bug.cgi?id=29395

George Pee <georgepee at gmail dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |georgepee at gmail dot com

-- 
You are receiving this mail because:
You are on the CC list for the bug.

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [Bug backtrace/29395] blockframe.c:79: internal-error: get_frame_block: Assertion `bl != NULL' failed.
  2022-07-22 13:02 [Bug backtrace/29395] New: blockframe.c:79: internal-error: get_frame_block: Assertion `bl != NULL' failed georgepee at gmail dot com
  2022-07-25 15:27 ` [Bug backtrace/29395] " georgepee at gmail dot com
  2022-08-24 13:20 ` georgepee at gmail dot com
@ 2022-12-15 18:08 ` seth.pellegrino at gmail dot com
  2022-12-15 18:11 ` simon.marchi at polymtl dot ca
                   ` (9 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: seth.pellegrino at gmail dot com @ 2022-12-15 18:08 UTC (permalink / raw)
  To: gdb-prs

https://sourceware.org/bugzilla/show_bug.cgi?id=29395

Seth Pellegrino <seth.pellegrino at gmail dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |seth.pellegrino at gmail dot com

--- Comment #1 from Seth Pellegrino <seth.pellegrino at gmail dot com> ---
I'm seeing the same assertion failure with booth 12.1 and the latest master
(38665d717a3) when attaching to a corefile: immediately after starting up gdb,
trying `bt` will yield the assertion failure. `maint set dwarf unwinders off`
followed by `bt` does not crash, but doesn't yield much of a backtrace either.

The core file (1.1GB) + binary + debug symbols (combined, 2.6GB) can be found
here: https://f004.backblazeb2.com/file/shared-sethp/gdb-29395.tar.zstd (total
compressed size: 1.2GB). 

I also threw in the core dumps from gdb itself, both from 12.1
(core.gdb.1000.d4a79394d6ce443f8e9e6308ab0afc23.216854.1671119608000000.zst)
and master
(core.gdb.1000.d4a79394d6ce443f8e9e6308ab0afc23.383687.1671123437000000.zst)
because compressed they're only 65MB each (though they do both decompress to
~600MB).

-- 
You are receiving this mail because:
You are on the CC list for the bug.

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [Bug backtrace/29395] blockframe.c:79: internal-error: get_frame_block: Assertion `bl != NULL' failed.
  2022-07-22 13:02 [Bug backtrace/29395] New: blockframe.c:79: internal-error: get_frame_block: Assertion `bl != NULL' failed georgepee at gmail dot com
                   ` (2 preceding siblings ...)
  2022-12-15 18:08 ` seth.pellegrino at gmail dot com
@ 2022-12-15 18:11 ` simon.marchi at polymtl dot ca
  2022-12-15 18:43 ` seth.pellegrino at gmail dot com
                   ` (8 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: simon.marchi at polymtl dot ca @ 2022-12-15 18:11 UTC (permalink / raw)
  To: gdb-prs

https://sourceware.org/bugzilla/show_bug.cgi?id=29395

Simon Marchi <simon.marchi at polymtl dot ca> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |simon.marchi at polymtl dot ca

--- Comment #2 from Simon Marchi <simon.marchi at polymtl dot ca> ---
I get this error when trying to download your link:

{
  "code": "download_cap_exceeded",
  "message": "Cannot download file, download bandwidth or transaction (Class B)
cap exceeded. See the Caps & Alerts page to increase your cap.",
  "status": 403
}

I suppose it's not easy to make a small reproducer, right?

-- 
You are receiving this mail because:
You are on the CC list for the bug.

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [Bug backtrace/29395] blockframe.c:79: internal-error: get_frame_block: Assertion `bl != NULL' failed.
  2022-07-22 13:02 [Bug backtrace/29395] New: blockframe.c:79: internal-error: get_frame_block: Assertion `bl != NULL' failed georgepee at gmail dot com
                   ` (3 preceding siblings ...)
  2022-12-15 18:11 ` simon.marchi at polymtl dot ca
@ 2022-12-15 18:43 ` seth.pellegrino at gmail dot com
  2022-12-15 19:14 ` simon.marchi at polymtl dot ca
                   ` (7 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: seth.pellegrino at gmail dot com @ 2022-12-15 18:43 UTC (permalink / raw)
  To: gdb-prs

https://sourceware.org/bugzilla/show_bug.cgi?id=29395

--- Comment #3 from Seth Pellegrino <seth.pellegrino at gmail dot com> ---
(In reply to Simon Marchi from comment #2)
> I get this error when trying to download your link:
> 
> {
>   "code": "download_cap_exceeded",
>   "message": "Cannot download file, download bandwidth or transaction (Class
> B) cap exceeded. See the Caps & Alerts page to increase your cap.",
>   "status": 403
> }
> 
> I suppose it's not easy to make a small reproducer, right?

Whoops, I've upped the cap to allow a couple more downloads per day: sorry
about that!

To your question, I've indeed got very few ideas how to reduce this case. It's
not every kicad core that presents this way, so I think it's something specific
to the memory corruption that happened as a result of a use-after-free bug
(that I also don't know how to reproduce).

I bet there is a much smaller test case, though. If you've got ideas on how,
I'm happy to help shrink it if I can.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [Bug backtrace/29395] blockframe.c:79: internal-error: get_frame_block: Assertion `bl != NULL' failed.
  2022-07-22 13:02 [Bug backtrace/29395] New: blockframe.c:79: internal-error: get_frame_block: Assertion `bl != NULL' failed georgepee at gmail dot com
                   ` (4 preceding siblings ...)
  2022-12-15 18:43 ` seth.pellegrino at gmail dot com
@ 2022-12-15 19:14 ` simon.marchi at polymtl dot ca
  2022-12-15 20:09 ` simon.marchi at polymtl dot ca
                   ` (6 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: simon.marchi at polymtl dot ca @ 2022-12-15 19:14 UTC (permalink / raw)
  To: gdb-prs

https://sourceware.org/bugzilla/show_bug.cgi?id=29395

--- Comment #4 from Simon Marchi <simon.marchi at polymtl dot ca> ---
Thanks, I got it.  Can you give me a one-liner that triggers the crash for you?

I did this and I don't see a crash:

$ ./gdb -nx -q --data-directory=data-directory -ex "set sysroot
/home/smarchi/build/binutils-gdb/gdb-29395" -ex "set debug-file-directory
/home/smarchi/build/binutils-gdb/gdb-29395/usr/lib/debug" -ex "file
/home/smarchi/build/binutils-gdb/gdb-29395/usr/bin/kicad " -ex "core
/home/smarchi/build/binutils-gdb/gdb-29395/kicad-core-gdb-crasher" -ex bt
-batch
warning: Can't open file /dev/dri/renderD128 during file-backed mapping note
processing
warning: Can't open file
/usr/lib/python3.10/site-packages/wx/_core.cpython-310-x86_64-linux-gnu.so
during file-backed mapping note processing
warning: Can't open file /SYSV00000000 (deleted) during file-backed mapping
note processing
warning: Can't open file
/usr/lib/python3.10/site-packages/wx/_stc.cpython-310-x86_64-linux-gnu.so
during file-backed mapping note processing
warning: Can't open file
/usr/lib/python3.10/lib-dynload/_datetime.cpython-310-x86_64-linux-gnu.so
during file-backed mapping note processing
warning: Can't open file /usr/share/fonts/noto/NotoSansMono-Regular.ttf during
file-backed mapping note processing
warning: Can't open file /home/seth/.cache/mesa_shader_cache/index during
file-backed mapping note processing
warning: Can't open file /usr/lib/libLLVM-14.so during file-backed mapping note
processing
warning: Can't open file /usr/lib/dri/radeonsi_dri.so during file-backed
mapping note processing
warning: Can't open file /memfd:pulseaudio (deleted) during file-backed mapping
note processing
warning: Can't open file
/usr/lib/python3.10/site-packages/wx/siplib.cpython-310-x86_64-linux-gnu.so
during file-backed mapping note processing
warning: Can't open file /usr/lib/libncursesw.so.6.3 during file-backed mapping
note processing
warning: Can't open file /usr/lib/libedit.so.0.0.68 during file-backed mapping
note processing
warning: Can't open file /usr/lib/libdrm_nouveau.so.2.0.0 during file-backed
mapping note processing
warning: Can't open file /usr/lib/libdrm_amdgpu.so.1.0.0 during file-backed
mapping note processing
warning: Can't open file /usr/lib/libelf-0.188.so during file-backed mapping
note processing
warning: Can't open file /usr/lib/libdrm_radeon.so.1.0.1 during file-backed
mapping note processing
warning: Can't open file /usr/lib/libsensors.so.5.0.0 during file-backed
mapping note processing
warning: Can't open file /usr/lib/libxshmfence.so.1.0.0 during file-backed
mapping note processing
warning: Can't open file /usr/lib/libxcb-sync.so.1.0.0 during file-backed
mapping note processing
warning: Can't open file /usr/lib/libxcb-dri3.so.0.1.0 during file-backed
mapping note processing
warning: Can't open file /usr/lib/libwayland-server.so.0.21.0 during
file-backed mapping note processing
warning: Can't open file /usr/lib/libdrm.so.2.4.0 during file-backed mapping
note processing
warning: Can't open file /usr/lib/libxcb-xfixes.so.0.0.0 during file-backed
mapping note processing
warning: Can't open file /usr/lib/libxcb-dri2.so.0.0.0 during file-backed
mapping note processing
warning: Can't open file /usr/lib/libglapi.so.0.0.0 during file-backed mapping
note processing
warning: Can't open file /usr/lib/libEGL_mesa.so.0.0.0 during file-backed
mapping note processing
warning: Can't open file /usr/lib/libOpenGL.so.0.0.0 during file-backed mapping
note processing
warning: Can't open file /usr/lib/libGLX.so.0.0.0 during file-backed mapping
note processing
warning: Can't open file /usr/lib/libGLdispatch.so.0.0.0 during file-backed
mapping note processing
warning: Can't open file /usr/lib/libGLU.so.1.3.1 during file-backed mapping
note processing
warning: Can't open file /usr/lib/libGL.so.1.7.0 during file-backed mapping
note processing
warning: Can't open file /usr/lib/libwx_gtk3u_propgrid-3.2.so.0.1.0 during
file-backed mapping note processing
warning: Can't open file
/usr/lib/python3.10/lib-dynload/select.cpython-310-x86_64-linux-gnu.so during
file-backed mapping note processing
warning: Can't open file
/usr/lib/python3.10/lib-dynload/_posixsubprocess.cpython-310-x86_64-linux-gnu.so
during file-backed mapping note processing
warning: Can't open file /usr/lib/librsvg-2.so.2.48.0 during file-backed
mapping note processing
warning: Can't open file
/usr/lib/python3.10/lib-dynload/fcntl.cpython-310-x86_64-linux-gnu.so during
file-backed mapping note processing
warning: Can't open file
/usr/lib/python3.10/lib-dynload/_struct.cpython-310-x86_64-linux-gnu.so during
file-backed mapping note processing
warning: Can't open file /usr/share/icons/gnome/icon-theme.cache during
file-backed mapping note processing
warning: Can't open file /usr/share/icons/breeze/icon-theme.cache during
file-backed mapping note processing
warning: Can't open file /usr/lib/libasound.so.2.0.0 during file-backed mapping
note processing
warning: Can't open file /usr/lib/libxcb-present.so.0.0.0 during file-backed
mapping note processing
warning: Can't open file /usr/lib/libwx_gtk3u_gl-3.2.so.0.1.0 during
file-backed mapping note processing
warning: Can't open file /usr/share/icons/Adwaita/icon-theme.cache during
file-backed mapping note processing
warning: Can't open file /usr/lib/libopus.so.0.8.0 during file-backed mapping
note processing
warning: Can't open file /usr/lib/libFLAC.so.12.0.0 during file-backed mapping
note processing
warning: Can't open file /usr/lib/libvorbisenc.so.2.0.12 during file-backed
mapping note processing
warning: Can't open file /usr/lib/libsndfile.so.1.0.34 during file-backed
mapping note processing
warning: Can't open file /usr/lib/pulseaudio/libpulsecommon-16.1.so during
file-backed mapping note processing
warning: Can't open file /usr/lib/libpulse.so.0.24.2 during file-backed mapping
note processing
warning: Can't open file /usr/share/fonts/noto/NotoSans-Italic.ttf during
file-backed mapping note processing
warning: Can't open file /usr/share/fonts/noto/NotoSans-Bold.ttf during
file-backed mapping note processing
warning: Can't open file /memfd:xshmfence (deleted) during file-backed mapping
note processing
warning: Can't open file /usr/lib/libX11-xcb.so.1.0.0 during file-backed
mapping note processing
warning: Can't open file /usr/lib/libgbm.so.1.0.0 during file-backed mapping
note processing
warning: Can't open file /usr/lib/libasyncns.so.0.3.1 during file-backed
mapping note processing
warning: Can't open file /usr/lib/libEGL.so.1.1.0 during file-backed mapping
note processing
warning: Can't open file
/usr/lib/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-svg.so during
file-backed mapping note processing
warning: Can't open file
/usr/lib/python3.10/lib-dynload/_opcode.cpython-310-x86_64-linux-gnu.so during
file-backed mapping note processing
warning: Can't open file
/usr/lib/python3.10/lib-dynload/math.cpython-310-x86_64-linux-gnu.so during
file-backed mapping note processing
warning: Can't open file /home/seth/.local/share/icons/hicolor/icon-theme.cache
during file-backed mapping note processing
warning: Can't open file /usr/lib/libcanberra-0.30/libcanberra-alsa.so during
file-backed mapping note processing
warning: Can't open file /usr/lib/libnss_systemd.so.2 during file-backed
mapping note processing
warning: Can't open file /usr/share/icons/hicolor/icon-theme.cache during
file-backed mapping note processing
warning: Can't open file /usr/lib/libcanberra-0.30/libcanberra-pulse.so during
file-backed mapping note processing
warning: Can't open file /usr/lib/libcanberra-0.30/libcanberra-multi.so during
file-backed mapping note processing
warning: Can't open file /usr/share/mime/mime.cache during file-backed mapping
note processing
warning: Can't open file /usr/share/fonts/noto/NotoSans-Regular.ttf during
file-backed mapping note processing
warning: Can't open file
/var/cache/fontconfig/f2e43df3287529323e79e7929dc44cc9-le64.cache-8 during
file-backed mapping note processing
warning: Can't open file
/var/cache/fontconfig/923e285e415b1073c8df160bee08820f-le64.cache-8 during
file-backed mapping note processing
warning: Can't open file
/var/cache/fontconfig/8d4af663993b81a124ee82e610bb31f9-le64.cache-8 during
file-backed mapping note processing
warning: Can't open file
/var/cache/fontconfig/b67b32625a2bb51b023d3814a918f351-le64.cache-8 during
file-backed mapping note processing
warning: Can't open file
/var/cache/fontconfig/491f45a0a771fef1c10b9b647a97fb82-le64.cache-8 during
file-backed mapping note processing
warning: Can't open file
/var/cache/fontconfig/1dce2cb908b447e938fc03acd9b47fcf-le64.cache-8 during
file-backed mapping note processing
warning: Can't open file
/var/cache/fontconfig/f6b893a7224233d96cb72fd88691c0b4-le64.cache-8 during
file-backed mapping note processing
warning: Can't open file /usr/share/locale/en/LC_MESSAGES/gtk30.mo during
file-backed mapping note processing
warning: Can't open file /home/seth/.local/share/mime/mime.cache during
file-backed mapping note processing
warning: Can't open file
/var/cache/fontconfig/40a9d18f2870572023edd72623462882-le64.cache-8 during
file-backed mapping note processing
warning: Can't open file
/var/cache/fontconfig/6ba42ae0000f58711b5caaf10d690066-le64.cache-8 during
file-backed mapping note processing
warning: Can't open file
/var/cache/fontconfig/210c0516121708a580e22e6b1f9a103a-le64.cache-8 during
file-backed mapping note processing
warning: Can't open file /usr/share/locale/en/LC_MESSAGES/gtk30-properties.mo
during file-backed mapping note processing
warning: Can't open file /usr/lib/locale/C.UTF-8/LC_CTYPE during file-backed
mapping note processing
warning: Can't open file /usr/lib/locale/C.UTF-8/LC_NUMERIC during file-backed
mapping note processing
warning: Can't open file /usr/lib/locale/C.UTF-8/LC_TIME during file-backed
mapping note processing
warning: Can't open file /usr/lib/locale/C.UTF-8/LC_COLLATE during file-backed
mapping note processing
warning: Can't open file /usr/lib/locale/C.UTF-8/LC_MONETARY during file-backed
mapping note processing
warning: Can't open file /usr/lib/locale/C.UTF-8/LC_MESSAGES/SYS_LC_MESSAGES
during file-backed mapping note processing
warning: Can't open file /usr/lib/locale/C.UTF-8/LC_PAPER during file-backed
mapping note processing
warning: Can't open file /usr/lib/gvfs/libgvfscommon.so during file-backed
mapping note processing
warning: Can't open file /usr/lib/libogg.so.0.8.5 during file-backed mapping
note processing
warning: Can't open file /usr/lib/libvorbis.so.0.4.9 during file-backed mapping
note processing
warning: Can't open file /usr/lib/libltdl.so.7.3.2 during file-backed mapping
note processing
warning: Can't open file /usr/lib/libtdb.so.1.4.7 during file-backed mapping
note processing
warning: Can't open file /usr/lib/libvorbisfile.so.3.3.8 during file-backed
mapping note processing
warning: Can't open file /usr/lib/libcanberra.so.0.2.5 during file-backed
mapping note processing
warning: Can't open file /usr/lib/libxkbfile.so.1.0.2 during file-backed
mapping note processing
warning: Can't open file /usr/lib/libxklavier.so.16.4.0 during file-backed
mapping note processing
warning: Can't open file /usr/lib/libxapp.so.2.4.2 during file-backed mapping
note processing
warning: Can't open file /usr/lib/locale/C.UTF-8/LC_NAME during file-backed
mapping note processing
warning: Can't open file /usr/lib/locale/C.UTF-8/LC_ADDRESS during file-backed
mapping note processing
warning: Can't open file /usr/lib/locale/C.UTF-8/LC_TELEPHONE during
file-backed mapping note processing
warning: Can't open file /usr/lib/locale/C.UTF-8/LC_MEASUREMENT during
file-backed mapping note processing
warning: Can't open file /usr/lib/locale/C.UTF-8/LC_IDENTIFICATION during
file-backed mapping note processing
warning: Can't open file /usr/lib/gtk-3.0/modules/libcolorreload-gtk-module.so
during file-backed mapping note processing
warning: Can't open file /usr/lib/gio/modules/libgvfsdbus.so during file-backed
mapping note processing
warning: Can't open file /usr/lib/locale/locale-archive during file-backed
mapping note processing
warning: Can't open file /usr/lib/liblz4.so.1.9.4 during file-backed mapping
note processing
warning: Can't open file /usr/lib/libcap.so.2.66 during file-backed mapping
note processing
warning: Can't open file /usr/lib/libicudata.so.72.1 during file-backed mapping
note processing
warning: Can't open file /usr/lib/libsystemd.so.0.34.0 during file-backed
mapping note processing
warning: Can't open file /usr/lib/libtss2-sys.so.1.0.0 during file-backed
mapping note processing
warning: Can't open file /usr/lib/libgpg-error.so.0.33.1 during file-backed
mapping note processing
warning: Can't open file /usr/lib/libXdmcp.so.6.0.0 during file-backed mapping
note processing
warning: Can't open file /usr/lib/libXau.so.6.0.0 during file-backed mapping
note processing
warning: Can't open file /usr/lib/libbz2.so.1.0.8 during file-backed mapping
note processing
warning: Can't open file /usr/lib/libdatrie.so.1.4.0 during file-backed mapping
note processing
warning: Can't open file /usr/lib/libbrotlicommon.so.1.0.9 during file-backed
mapping note processing
warning: Can't open file /usr/lib/libresolv.so.2 during file-backed mapping
note processing
warning: Can't open file /usr/lib/libkeyutils.so.1.10 during file-backed
mapping note processing
warning: Can't open file /usr/lib/libkrb5support.so.0.1 during file-backed
mapping note processing
warning: Can't open file /usr/lib/libcom_err.so.2.1 during file-backed mapping
note processing
warning: Can't open file /usr/lib/libk5crypto.so.3.1 during file-backed mapping
note processing
warning: Can't open file /usr/lib/libkrb5.so.3.3 during file-backed mapping
note processing
warning: Can't open file /usr/lib/libunistring.so.5.0.0 during file-backed
mapping note processing
warning: Can't open file /usr/lib/libblkid.so.1.1.0 during file-backed mapping
note processing
warning: Can't open file /usr/lib/libsqlite3.so.0.8.6 during file-backed
mapping note processing
warning: Can't open file /usr/lib/libxml2.so.2.10.3 during file-backed mapping
note processing
warning: Can't open file /usr/lib/libjson-glib-1.0.so.0.600.6 during
file-backed mapping note processing
warning: Can't open file /usr/lib/libicui18n.so.72.1 during file-backed mapping
note processing
warning: Can't open file /usr/lib/libicuuc.so.72.1 during file-backed mapping
note processing
warning: Can't open file /usr/lib/libstemmer.so.0.0.0 during file-backed
mapping note processing
warning: Can't open file /usr/lib/libdbus-1.so.3.32.1 during file-backed
mapping note processing
warning: Can't open file /usr/lib/libatspi.so.0.0.1 during file-backed mapping
note processing
warning: Can't open file /usr/lib/libgraphite2.so.3.2.1 during file-backed
mapping note processing
warning: Can't open file /usr/lib/libtss2-tctildr.so.0.0.0 during file-backed
mapping note processing
warning: Can't open file /usr/lib/libtss2-rc.so.0.0.0 during file-backed
mapping note processing
warning: Can't open file /usr/lib/libtss2-mu.so.0.0.0 during file-backed
mapping note processing
warning: Can't open file /usr/lib/libtss2-esys.so.0.0.0 during file-backed
mapping note processing
warning: Can't open file /usr/lib/libgcrypt.so.20.4.1 during file-backed
mapping note processing
warning: Can't open file /usr/lib/libpixman-1.so.0.42.2 during file-backed
mapping note processing
warning: Can't open file /usr/lib/libxcb-shm.so.0.0.0 during file-backed
mapping note processing
warning: Can't open file /usr/lib/libxcb-render.so.0.0.0 during file-backed
mapping note processing
warning: Can't open file /usr/lib/libxcb.so.1.1.0 during file-backed mapping
note processing
warning: Can't open file /usr/lib/libXrender.so.1.3.0 during file-backed
mapping note processing
warning: Can't open file /usr/lib/libfreetype.so.6.18.3 during file-backed
mapping note processing
warning: Can't open file /usr/lib/libthai.so.0.3.1 during file-backed mapping
note processing
warning: Can't open file /usr/lib/libbrotlidec.so.1.0.9 during file-backed
mapping note processing
warning: Can't open file /usr/lib/libzstd.so.1.5.2 during file-backed mapping
note processing
warning: Can't open file /usr/lib/libgssapi_krb5.so.2.2 during file-backed
mapping note processing
warning: Can't open file /usr/lib/libcrypto.so.3 during file-backed mapping
note processing
warning: Can't open file /usr/lib/libssl.so.3 during file-backed mapping note
processing
warning: Can't open file /usr/lib/libpsl.so.5.3.3 during file-backed mapping
note processing
warning: Can't open file /usr/lib/libssh2.so.1.0.1 during file-backed mapping
note processing
warning: Can't open file /usr/lib/libidn2.so.0.3.8 during file-backed mapping
note processing
warning: Can't open file /usr/lib/libnghttp2.so.14.24.1 during file-backed
mapping note processing
warning: Can't open file /usr/lib/libpcre2-8.so.0.11.0 during file-backed
mapping note processing
warning: Can't open file /usr/lib/libffi.so.8.1.2 during file-backed mapping
note processing
warning: Can't open file /usr/lib/libmount.so.1.1.0 during file-backed mapping
note processing
warning: Can't open file /usr/lib/libXinerama.so.1.0.0 during file-backed
mapping note processing
warning: Can't open file /usr/lib/libXrandr.so.2.2.0 during file-backed mapping
note processing
warning: Can't open file /usr/lib/libXcomposite.so.1.0.0 during file-backed
mapping note processing
warning: Can't open file /usr/lib/libXdamage.so.1.1.0 during file-backed
mapping note processing
warning: Can't open file /usr/lib/libXcursor.so.1.0.2 during file-backed
mapping note processing
warning: Can't open file /usr/lib/libXext.so.6.4.0 during file-backed mapping
note processing
warning: Can't open file /usr/lib/libwayland-egl.so.1.21.0 during file-backed
mapping note processing
warning: Can't open file /usr/lib/libwayland-client.so.0.21.0 during
file-backed mapping note processing
warning: Can't open file /usr/lib/libxkbcommon.so.0.0.0 during file-backed
mapping note processing
warning: Can't open file /usr/lib/libXfixes.so.3.1.0 during file-backed mapping
note processing
warning: Can't open file /usr/lib/libtracker-sparql-3.0.so.0.401.0 during
file-backed mapping note processing
warning: Can't open file /usr/lib/libcloudproviders.so.0.3.1 during file-backed
mapping note processing
warning: Can't open file /usr/lib/libatk-bridge-2.0.so.0.0.0 during file-backed
mapping note processing
warning: Can't open file /usr/lib/libXi.so.6.1.0 during file-backed mapping
note processing
warning: Can't open file /usr/lib/libepoxy.so.0.0.0 during file-backed mapping
note processing
warning: Can't open file /usr/lib/libatk-1.0.so.0.24609.1 during file-backed
mapping note processing
warning: Can't open file /usr/lib/libcairo-gobject.so.2.11706.0 during
file-backed mapping note processing
warning: Can't open file /usr/lib/libfribidi.so.0.4.0 during file-backed
mapping note processing
warning: Can't open file /usr/lib/libharfbuzz.so.0.50301.0 during file-backed
mapping note processing
warning: Can't open file /usr/lib/libgmodule-2.0.so.0.7400.3 during file-backed
mapping note processing
warning: Can't open file /usr/lib/libexpat.so.1.8.10 during file-backed mapping
note processing
warning: Can't open file /usr/lib/libsecret-1.so.0.0.0 during file-backed
mapping note processing
warning: Can't open file /usr/lib/liblzma.so.5.2.9 during file-backed mapping
note processing
warning: Can't open file /usr/lib/libpcre2-32.so.0.11.0 during file-backed
mapping note processing
warning: Can't open file /usr/lib/libz.so.1.2.13 during file-backed mapping
note processing
warning: Can't open file /usr/lib/libnotify.so.4.0.0 during file-backed mapping
note processing
warning: Can't open file /usr/lib/libSDL2-2.0.so.0.2600.0 during file-backed
mapping note processing
warning: Can't open file /usr/lib/libpangoft2-1.0.so.0.5000.12 during
file-backed mapping note processing
warning: Can't open file /usr/lib/libfontconfig.so.1.13.0 during file-backed
mapping note processing
warning: Can't open file /usr/lib/libtiff.so.5.8.0 during file-backed mapping
note processing
warning: Can't open file /usr/lib/libpng16.so.16.39.0 during file-backed
mapping note processing
warning: Can't open file /usr/lib/libjpeg.so.8.2.2 during file-backed mapping
note processing
warning: Can't open file /usr/lib/libXtst.so.6.1.0 during file-backed mapping
note processing
warning: Can't open file /usr/lib/libX11.so.6.4.0 during file-backed mapping
note processing
warning: Can't open file /usr/lib/libgdk_pixbuf-2.0.so.0.4200.10 during
file-backed mapping note processing
warning: Can't open file /usr/lib/libcairo.so.2.11706.0 during file-backed
mapping note processing
warning: Can't open file /usr/lib/libpango-1.0.so.0.5000.12 during file-backed
mapping note processing
warning: Can't open file /usr/lib/libpangocairo-1.0.so.0.5000.12 during
file-backed mapping note processing
warning: Can't open file /usr/lib/libmspack.so.0.1.0 during file-backed mapping
note processing
warning: Can't open file /usr/lib/libc.so.6 during file-backed mapping note
processing
warning: Can't open file /usr/lib/libgcc_s.so.1 during file-backed mapping note
processing
warning: Can't open file /usr/lib/libm.so.6 during file-backed mapping note
processing
warning: Can't open file /usr/lib/libstdc++.so.6.0.30 during file-backed
mapping note processing
warning: Can't open file /usr/lib/libpython3.10.so.1.0 during file-backed
mapping note processing
warning: Can't open file /usr/lib/libcurl.so.4.8.0 during file-backed mapping
note processing
warning: Can't open file /usr/lib/libglib-2.0.so.0.7400.3 during file-backed
mapping note processing
warning: Can't open file /usr/lib/libgobject-2.0.so.0.7400.3 during file-backed
mapping note processing
warning: Can't open file /usr/lib/libgio-2.0.so.0.7400.3 during file-backed
mapping note processing
warning: Can't open file /usr/lib/libgdk-3.so.0.2404.31 during file-backed
mapping note processing
warning: Can't open file /usr/lib/libgtk-3.so.0.2404.31 during file-backed
mapping note processing
warning: Can't open file /usr/lib/libwx_gtk3u_stc-3.2.so.0.1.0 during
file-backed mapping note processing
warning: Can't open file /usr/lib/libwx_baseu_xml-3.2.so.0.1.0 during
file-backed mapping note processing
warning: Can't open file /usr/lib/libwx_baseu-3.2.so.0.1.0 during file-backed
mapping note processing
warning: Can't open file /usr/lib/libwx_baseu_net-3.2.so.0.1.0 during
file-backed mapping note processing
warning: Can't open file /usr/lib/libwx_gtk3u_core-3.2.so.0.1.0 during
file-backed mapping note processing
warning: Can't open file /usr/lib/libwx_gtk3u_html-3.2.so.0.1.0 during
file-backed mapping note processing
warning: Can't open file /usr/lib/libwx_gtk3u_aui-3.2.so.0.1.0 during
file-backed mapping note processing
warning: Can't open file /usr/lib/libcanberra-gtk3.so.0.1.9 during file-backed
mapping note processing
warning: Can't open file /usr/lib/gtk-3.0/modules/libcanberra-gtk3-module.so
during file-backed mapping note processing
warning: Can't open file /usr/lib/libgnomekbd.so.8.0.0 during file-backed
mapping note processing
warning: Can't open file /usr/lib/libgnomekbdui.so.8.0.0 during file-backed
mapping note processing
warning: Can't open file /usr/lib/gtk-3.0/modules/libxapp-gtk3-module.so during
file-backed mapping note processing
warning: Can't open file /usr/lib/gconv/UTF-32.so during file-backed mapping
note processing
warning: Can't open file /usr/lib/ld-linux-x86-64.so.2 during file-backed
mapping note processing
[New LWP 1377780]
[New LWP 1377873]
[New LWP 1377872]
[New LWP 1841802]
[New LWP 1631101]
[New LWP 1377863]
[New LWP 1377871]
[New LWP 1377782]
[New LWP 1377781]
[New LWP 1377874]
warning: Could not load shared library symbols for 181 libraries, e.g.
/usr/lib/libwx_gtk3u_aui-3.2.so.0.
Use the "info sharedlibrary" command to see the complete listing.
Do you need "set solib-search-path" or "set sysroot"?
Core was generated by `/usr/bin/kicad'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  0x00007f8ecc3629f7 in ?? ()
[Current thread is 1 (LWP 1377780)]
#0  0x00007f8ecc3629f7 in ?? ()
#1  0x000055653993e7ac in wmemcpy (__n=1686, __s2=<optimized out>,
__s1=<optimized out>) at /usr/include/bits/wchar2.h:39
#2  std::char_traits<wchar_t>::copy (__n=1686, __s2=<optimized out>,
__s1=<optimized out>) at /usr/include/c++/12.2.0/bits/char_traits.h:558
#3  std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>,
std::allocator<wchar_t> >::_S_copy (__n=1686, __s=<optimized out>,
__d=<optimized out>) at /usr/include/c++/12.2.0/bits/basic_string.h:423
#4  std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>,
std::allocator<wchar_t> >::_M_assign (this=0x5565438d87c8, __str=...) at
/usr/include/c++/12.2.0/bits/basic_string.tcc:291
#5  0x00007f8e60f1bd14 in std::__cxx11::basic_string<wchar_t,
std::char_traits<wchar_t>, std::allocator<wchar_t> >::assign (__str=...,
this=0x5565438d87c8) at /usr/include/c++/12.2.0/bits/basic_string.h:1571
#6  std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>,
std::allocator<wchar_t> >::operator= (__str=..., this=0x5565438d87c8) at
/usr/include/c++/12.2.0/bits/basic_string.h:805
#7  wxString::operator= (stringSrc=..., this=0x5565438d87c8) at
/usr/include/wx-3.2/wx/string.h:1892
#8  EDA_BASE_FRAME::SaveWindowSettings (this=0x55653db8e450,
aCfg=0x5565438d8780) at
/usr/src/debug/kicad/kicad/common/eda_base_frame.cpp:763
#9  0x00007f8e60f1cac5 in EDA_BASE_FRAME::SaveSettings (this=0x55653db8e450,
aCfg=0x5565438d8540) at
/usr/src/debug/kicad/kicad/common/eda_base_frame.cpp:785
#10 0x00007f8e60f2ba14 in EDA_DRAW_FRAME::SaveSettings (this=0x55653db8e450,
aCfg=0x5565438d8540) at
/usr/src/debug/kicad/kicad/common/eda_draw_frame.cpp:612
#11 0x00007f8e60babdd6 in PCB_BASE_FRAME::SaveSettings (this=0x55653db8e450,
aCfg=0x5565438d8540) at
/usr/src/debug/kicad/kicad/pcbnew/pcb_base_frame.cpp:831
#12 0x00007f8e606805c6 in FOOTPRINT_EDIT_FRAME::SaveSettings
(this=0x55653db8e450, aCfg=<optimized out>) at
/usr/src/debug/kicad/kicad/pcbnew/footprint_edit_frame.cpp:584
#13 0x00007f8e60f13124 in EDA_BASE_FRAME::windowClosing (event=...,
this=0x55653db8e450) at
/usr/src/debug/kicad/kicad/common/eda_base_frame.cpp:228
#14 EDA_BASE_FRAME::windowClosing (this=0x55653db8e450, event=...) at
/usr/src/debug/kicad/kicad/common/eda_base_frame.cpp:196
#15 0x00007f8ecdb6d452 in ?? ()
#16 0x00007ffd810b2b80 in ?? ()
#17 0x00007f8ecdb6fe17 in ?? ()
#18 0x0000000000000000 in ?? ()

-- 
You are receiving this mail because:
You are on the CC list for the bug.

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [Bug backtrace/29395] blockframe.c:79: internal-error: get_frame_block: Assertion `bl != NULL' failed.
  2022-07-22 13:02 [Bug backtrace/29395] New: blockframe.c:79: internal-error: get_frame_block: Assertion `bl != NULL' failed georgepee at gmail dot com
                   ` (5 preceding siblings ...)
  2022-12-15 19:14 ` simon.marchi at polymtl dot ca
@ 2022-12-15 20:09 ` simon.marchi at polymtl dot ca
  2022-12-15 20:27 ` simon.marchi at polymtl dot ca
                   ` (5 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: simon.marchi at polymtl dot ca @ 2022-12-15 20:09 UTC (permalink / raw)
  To: gdb-prs

https://sourceware.org/bugzilla/show_bug.cgi?id=29395

--- Comment #5 from Simon Marchi <simon.marchi at polymtl dot ca> ---
Ok, I got it to crash by installing the Arch Linux packages you provided on
Arch Linux system, and then:

$ /usr/bin/gdb /usr/bin/kicad -c kicad-core-gdb-crasher

I then tried using my own build of GDB, it wouldn't crash.  I rebuilt the Arch
package with debug info to understand where it crashes, it's within a
frame-filter implementation.  To reproduce the crash, we need this to be
loaded:

(gdb) info frame-filter 
objfile /usr/lib/libgobject-2.0.so.0 frame-filters:
  Priority  Enabled  Name
  100       Yes      glib

So, I was able to get the crash on master with:

$ /home/simark/build/binutils-gdb-opt/gdb/gdb -nx
--data-directory=/home/simark/build/binutils-gdb-opt/gdb/data-directory -iex
"add-auto-load-scripts-directory /usr/share/gdb/auto-load" -iex "set auto-load
safe-path /" -q /usr/bin/kicad -c ../gdb-29395/kicad-core-gdb-crasher -ex bt
-batch

(top-gdb) bt
#0  internal_error_loc (file=file@entry=0x555555b56080
"/home/simark/src/binutils-gdb/gdb/blockframe.c", line=line@entry=79,
fmt=fmt@entry=0x555555b55d40 "%s: Assertion `%s' failed.") at
/home/simark/src/binutils-gdb/gdbsupport/errors.cc:54
#1  0x00005555560c2129 in get_frame_block (frame=...,
addr_in_block=addr_in_block@entry=0x0) at
/home/simark/src/binutils-gdb/gdb/blockframe.c:79
#2  0x00005555560c2d84 in get_frame_function (frame=...) at
/home/simark/src/binutils-gdb/gdb/blockframe.c:120
#3  0x0000555556d4ff8b in find_frame_funname (frame=...,
funlang=funlang@entry=0x7fffffffaa20, funcp=funcp@entry=0x7fffffffaa30) at
/home/simark/src/binutils-gdb/gdb/stack.c:1288
#4  0x0000555556aff348 in frapy_function (self=<optimized out>, args=<optimized
out>) at /home/simark/src/binutils-gdb/gdb/python/py-frame.c:329
#5  0x00007ffff7358204 in method_vectorcall_NOARGS (func=0x7ffff201f420,
args=0x7ffff20eb2b8, nargsf=<optimized out>, kwnames=<optimized out>) at
Objects/descrobject.c:432
#6  0x00007ffff7344f4a in _PyObject_VectorcallTstate (kwnames=0x0,
nargsf=<optimized out>, args=0x7ffff20eb2b8, callable=0x7ffff201f420,
tstate=0x6120000c5ec0) at ./Include/cpython/abstract.h:114
#7  PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>,
args=0x7ffff20eb2b8, callable=0x7ffff201f420) at
./Include/cpython/abstract.h:123
#8  call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic
pointer>, trace_info=0x7fffffffacf0, tstate=<optimized out>) at
Python/ceval.c:5891
#9  _PyEval_EvalFrameDefault (tstate=<optimized out>, f=0x7ffff20eb130,
throwflag=<optimized out>) at Python/ceval.c:4198
#10 0x00007ffff7355959 in _PyEval_EvalFrame (throwflag=0, f=0x7ffff20eb130,
tstate=0x6120000c5ec0) at ./Include/internal/pycore_ceval.h:46
#11 _PyEval_Vector (kwnames=<optimized out>, argcount=<optimized out>,
args=<optimized out>, locals=0x0, con=0x7ffff20ec560, tstate=0x6120000c5ec0) at
Python/ceval.c:5065
#12 _PyFunction_Vectorcall (func=0x7ffff20ec550, stack=<optimized out>,
nargsf=<optimized out>, kwnames=<optimized out>) at Objects/call.c:342
#13 0x00007ffff7344f4a in _PyObject_VectorcallTstate (kwnames=0x0,
nargsf=<optimized out>, args=0x7fffe94f1398, callable=0x7ffff20ec550,
tstate=0x6120000c5ec0) at ./Include/cpython/abstract.h:114
#14 PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>,
args=0x7fffe94f1398, callable=0x7ffff20ec550) at
./Include/cpython/abstract.h:123
#15 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic
pointer>, trace_info=0x7fffffffaeb0, tstate=<optimized out>) at
Python/ceval.c:5891
#16 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=0x7fffe94f1220,
throwflag=<optimized out>) at Python/ceval.c:4198
#17 0x00007ffff7355959 in _PyEval_EvalFrame (throwflag=0, f=0x7fffe94f1220,
tstate=0x6120000c5ec0) at ./Include/internal/pycore_ceval.h:46
#18 _PyEval_Vector (kwnames=<optimized out>, argcount=<optimized out>,
args=<optimized out>, locals=0x0, con=0x7fffe9555130, tstate=0x6120000c5ec0) at
Python/ceval.c:5065
#19 _PyFunction_Vectorcall (func=0x7fffe9555120, stack=<optimized out>,
nargsf=<optimized out>, kwnames=<optimized out>) at Objects/call.c:342
#20 0x00007ffff7344b16 in _PyObject_VectorcallTstate (kwnames=0x0,
nargsf=<optimized out>, args=<optimized out>, callable=0x7fffe9555120,
tstate=0x6120000c5ec0) at ./Include/cpython/abstract.h:114
#21 PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=<optimized
out>, callable=0x7fffe9555120) at ./Include/cpython/abstract.h:123
#22 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic
pointer>, trace_info=0x7fffffffb070, tstate=<optimized out>) at
Python/ceval.c:5891
#23 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=0x7ffff20eaf80,
throwflag=<optimized out>) at Python/ceval.c:4213
#24 0x00007ffff7355959 in _PyEval_EvalFrame (throwflag=0, f=0x7ffff20eaf80,
tstate=0x6120000c5ec0) at ./Include/internal/pycore_ceval.h:46
#25 _PyEval_Vector (kwnames=<optimized out>, argcount=<optimized out>,
args=<optimized out>, locals=0x0, con=0x7fffe9555a30, tstate=0x6120000c5ec0) at
Python/ceval.c:5065
#26 _PyFunction_Vectorcall (func=0x7fffe9555a20, stack=<optimized out>,
nargsf=<optimized out>, kwnames=<optimized out>) at Objects/call.c:342
#27 0x00007ffff7344f4a in _PyObject_VectorcallTstate (kwnames=0x0,
nargsf=<optimized out>, args=0x7ffff2086b90, callable=0x7fffe9555a20,
tstate=0x6120000c5ec0) at ./Include/cpython/abstract.h:114
#28 PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>,
args=0x7ffff2086b90, callable=0x7fffe9555a20) at
./Include/cpython/abstract.h:123
#29 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic
pointer>, trace_info=0x7fffffffb230, tstate=<optimized out>) at
Python/ceval.c:5891
#30 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=0x7ffff20869f0,
throwflag=<optimized out>) at Python/ceval.c:4198
#31 0x00007ffff7355959 in _PyEval_EvalFrame (throwflag=0, f=0x7ffff20869f0,
tstate=0x6120000c5ec0) at ./Include/internal/pycore_ceval.h:46
#32 _PyEval_Vector (kwnames=<optimized out>, argcount=<optimized out>,
args=<optimized out>, locals=0x0, con=0x7fffe9555ac0, tstate=0x6120000c5ec0) at
Python/ceval.c:5065
#33 _PyFunction_Vectorcall (func=0x7fffe9555ab0, stack=<optimized out>,
nargsf=<optimized out>, kwnames=<optimized out>) at Objects/call.c:342
#34 0x00007ffff7344f4a in _PyObject_VectorcallTstate (kwnames=0x0,
nargsf=<optimized out>, args=0x7ffff2090b10, callable=0x7fffe9555ab0,
tstate=0x6120000c5ec0) at ./Include/cpython/abstract.h:114
#35 PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>,
args=0x7ffff2090b10, callable=0x7fffe9555ab0) at
./Include/cpython/abstract.h:123
#36 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic
pointer>, trace_info=0x7fffffffb3f0, tstate=<optimized out>) at
Python/ceval.c:5891
#37 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=0x7ffff20909a0,
throwflag=<optimized out>) at Python/ceval.c:4198
#38 0x00007ffff73ad757 in _PyEval_EvalFrame (throwflag=0, f=0x7ffff20909a0,
tstate=0x6120000c5ec0) at ./Include/internal/pycore_ceval.h:46
#39 _PyEval_Vector (kwnames=0x0, argcount=<optimized out>, args=<optimized
out>, locals=0x0, con=0x7fffe9555b50, tstate=0x6120000c5ec0) at
Python/ceval.c:5065
#40 _PyFunction_Vectorcall (kwnames=0x0, nargsf=1, stack=<optimized out>,
func=0x7fffe9555b40) at Objects/call.c:342
#41 _PyObject_VectorcallTstate (kwnames=0x0, nargsf=<optimized out>,
args=<optimized out>, callable=0x7fffe9555b40, tstate=0x6120000c5ec0) at
./Include/cpython/abstract.h:114
#42 vectorcall_unbound (nargs=<optimized out>, args=<optimized out>,
func=<optimized out>, unbound=<optimized out>, tstate=<optimized out>) at
Objects/typeobject.c:1629
#43 vectorcall_method (name=<optimized out>, args=<optimized out>,
nargs=<optimized out>) at Objects/typeobject.c:1661
#44 0x00007ffff73dbab0 in slot_tp_iternext (self=<optimized out>) at
Objects/typeobject.c:7672
#45 0x00007ffff73e134d in islice_next (lz=0x7fffe95c5030) at
./Modules/itertoolsmodule.c:1729
#46 0x00007ffff7339894 in PyIter_Next (iter=<optimized out>) at
Objects/abstract.c:2874
#47 0x0000555556b0bbbf in gdbpy_apply_frame_filter (extlang=<optimized out>,
frame=..., flags=..., args_type=<optimized out>, out=<optimized out>,
frame_low=<optimized out>, frame_high=-1) at
/home/simark/src/binutils-gdb/gdb/python/py-framefilter.c:1205
#48 0x00005555565aff8d in apply_ext_lang_frame_filter (frame=..., flags=...,
args_type=args_type@entry=CLI_SCALAR_VALUES, out=out@entry=0x60b000041800,
frame_low=frame_low@entry=0, frame_high=frame_high@entry=-1) at
/home/simark/src/binutils-gdb/gdb/extension.c:541
#49 0x0000555556d5f6e2 in backtrace_command_1 (from_tty=0, count_exp=0x0,
bt_opts=..., fp_opts=...) at /home/simark/src/binutils-gdb/gdb/stack.c:2051
#50 backtrace_command (arg=<optimized out>, from_tty=<optimized out>) at
/home/simark/src/binutils-gdb/gdb/stack.c:2192
#51 0x000055555625e667 in cmd_func (cmd=0x61200008bcc0, args=<optimized out>,
from_tty=<optimized out>) at
/home/simark/src/binutils-gdb/gdb/cli/cli-decode.c:2543
#52 0x0000555556eebc83 in execute_command (p=<optimized out>,
from_tty=<optimized out>) at /home/simark/src/binutils-gdb/gdb/top.c:697
#53 0x00005555569151d6 in catch_command_errors (command=<optimized out>,
arg=<optimized out>, from_tty=<optimized out>,
do_bp_actions=do_bp_actions@entry=true) at
/home/simark/src/binutils-gdb/gdb/main.c:513
#54 0x00005555569154cf in execute_cmdargs
(cmdarg_vec=cmdarg_vec@entry=0x7fffffffce90,
file_type=file_type@entry=CMDARG_FILE, cmd_type=cmd_type@entry=CMDARG_COMMAND,
ret=ret@entry=0x7fffffffca50) at /home/simark/src/binutils-gdb/gdb/main.c:608
#55 0x000055555691c610 in captured_main_1
(context=context@entry=0x7fffffffd490) at
/home/simark/src/binutils-gdb/gdb/main.c:1299
#56 0x000055555691d9eb in captured_main (data=data@entry=0x7fffffffd490) at
/home/simark/src/binutils-gdb/gdb/main.c:1320
#57 gdb_main (args=args@entry=0x7fffffffd490) at
/home/simark/src/binutils-gdb/gdb/main.c:1345
#58 0x0000555555f639bb in main (argc=14, argv=0x7fffffffd638) at
/home/simark/src/binutils-gdb/gdb/gdb.c:32


PS: I think you'll find the master branch of GDB (to be GDB 13) much faster to
initially load the debug info, thanks to Tom Tromey's DWARF reader refactor.  I
can really see the difference with binaries of this size, between 12 and
master.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [Bug backtrace/29395] blockframe.c:79: internal-error: get_frame_block: Assertion `bl != NULL' failed.
  2022-07-22 13:02 [Bug backtrace/29395] New: blockframe.c:79: internal-error: get_frame_block: Assertion `bl != NULL' failed georgepee at gmail dot com
                   ` (6 preceding siblings ...)
  2022-12-15 20:09 ` simon.marchi at polymtl dot ca
@ 2022-12-15 20:27 ` simon.marchi at polymtl dot ca
  2022-12-15 21:02 ` seth.pellegrino at gmail dot com
                   ` (4 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: simon.marchi at polymtl dot ca @ 2022-12-15 20:27 UTC (permalink / raw)
  To: gdb-prs

https://sourceware.org/bugzilla/show_bug.cgi?id=29395

--- Comment #6 from Simon Marchi <simon.marchi at polymtl dot ca> ---

> $ /home/simark/build/binutils-gdb-opt/gdb/gdb -nx
> --data-directory=/home/simark/build/binutils-gdb-opt/gdb/data-directory -iex
> "add-auto-load-scripts-directory /usr/share/gdb/auto-load" -iex "set
> auto-load safe-path /" -q /usr/bin/kicad -c
> ../gdb-29395/kicad-core-gdb-crasher -ex bt -batch

Note: throw in -iex "set debug-file-directory /usr/lib/debug" as well, if not
already configured like that.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [Bug backtrace/29395] blockframe.c:79: internal-error: get_frame_block: Assertion `bl != NULL' failed.
  2022-07-22 13:02 [Bug backtrace/29395] New: blockframe.c:79: internal-error: get_frame_block: Assertion `bl != NULL' failed georgepee at gmail dot com
                   ` (7 preceding siblings ...)
  2022-12-15 20:27 ` simon.marchi at polymtl dot ca
@ 2022-12-15 21:02 ` seth.pellegrino at gmail dot com
  2022-12-15 21:12 ` simon.marchi at polymtl dot ca
                   ` (3 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: seth.pellegrino at gmail dot com @ 2022-12-15 21:02 UTC (permalink / raw)
  To: gdb-prs

https://sourceware.org/bugzilla/show_bug.cgi?id=29395

--- Comment #7 from Seth Pellegrino <seth.pellegrino at gmail dot com> ---
(In reply to Simon Marchi from comment #5)
> Ok, I got it to crash by installing the Arch Linux packages you provided on
> Arch Linux system, and then:
> 
> $ /usr/bin/gdb /usr/bin/kicad -c kicad-core-gdb-crasher
> 
> I then tried using my own build of GDB, it wouldn't crash.  I rebuilt the
> Arch package with debug info to understand where it crashes, it's within a
> frame-filter implementation.  To reproduce the crash, we need this to be
> loaded:
> 
> [ ... ]

Oh, interesting: so it's something particular about the way the arch package is
built? Is that frame-filter something I can turn off to avoid the crash for
now?

> 
> PS: I think you'll find the master branch of GDB (to be GDB 13) much faster
> to initially load the debug info, thanks to Tom Tromey's DWARF reader
> refactor.  I can really see the difference with binaries of this size,
> between 12 and master.

Oh neat! I'll have to check that out: I've definitely been feeling the time it
takes to load the debug info loading so far.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [Bug backtrace/29395] blockframe.c:79: internal-error: get_frame_block: Assertion `bl != NULL' failed.
  2022-07-22 13:02 [Bug backtrace/29395] New: blockframe.c:79: internal-error: get_frame_block: Assertion `bl != NULL' failed georgepee at gmail dot com
                   ` (8 preceding siblings ...)
  2022-12-15 21:02 ` seth.pellegrino at gmail dot com
@ 2022-12-15 21:12 ` simon.marchi at polymtl dot ca
  2022-12-16 16:27 ` tromey at sourceware dot org
                   ` (2 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: simon.marchi at polymtl dot ca @ 2022-12-15 21:12 UTC (permalink / raw)
  To: gdb-prs

https://sourceware.org/bugzilla/show_bug.cgi?id=29395

--- Comment #8 from Simon Marchi <simon.marchi at polymtl dot ca> ---
(In reply to Seth Pellegrino from comment #7)
> (In reply to Simon Marchi from comment #5)
> > Ok, I got it to crash by installing the Arch Linux packages you provided on
> > Arch Linux system, and then:
> > 
> > $ /usr/bin/gdb /usr/bin/kicad -c kicad-core-gdb-crasher
> > 
> > I then tried using my own build of GDB, it wouldn't crash.  I rebuilt the
> > Arch package with debug info to understand where it crashes, it's within a
> > frame-filter implementation.  To reproduce the crash, we need this to be
> > loaded:
> > 
> > [ ... ]
> 
> Oh, interesting: so it's something particular about the way the arch package
> is built? Is that frame-filter something I can turn off to avoid the crash
> for now?

No, just that by default, when you build GDB from source (or pretty much any
other package using autotools), it defaults to using the /usr/local prefix.  So
my local build was looking for separate debug info in /usr/local/lib/debug,
didn't find the required debug info, and therefore didn't crash.  By telling it
to search in /usr/lib/debug, it finds the debug info and hits the bug.

You can disable the frame-filter by with the "disable frame-filter" command.
Then confirm it is disabled with "info frame-filter".

See: https://sourceware.org/gdb/onlinedocs/gdb/Frame-Filter-Management.html

-- 
You are receiving this mail because:
You are on the CC list for the bug.

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [Bug backtrace/29395] blockframe.c:79: internal-error: get_frame_block: Assertion `bl != NULL' failed.
  2022-07-22 13:02 [Bug backtrace/29395] New: blockframe.c:79: internal-error: get_frame_block: Assertion `bl != NULL' failed georgepee at gmail dot com
                   ` (9 preceding siblings ...)
  2022-12-15 21:12 ` simon.marchi at polymtl dot ca
@ 2022-12-16 16:27 ` tromey at sourceware dot org
  2022-12-20 23:03 ` simark at simark dot ca
  2022-12-21  4:49 ` simark at simark dot ca
  12 siblings, 0 replies; 14+ messages in thread
From: tromey at sourceware dot org @ 2022-12-16 16:27 UTC (permalink / raw)
  To: gdb-prs

https://sourceware.org/bugzilla/show_bug.cgi?id=29395

Tom Tromey <tromey at sourceware dot org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |tromey at sourceware dot org

-- 
You are receiving this mail because:
You are on the CC list for the bug.

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [Bug backtrace/29395] blockframe.c:79: internal-error: get_frame_block: Assertion `bl != NULL' failed.
  2022-07-22 13:02 [Bug backtrace/29395] New: blockframe.c:79: internal-error: get_frame_block: Assertion `bl != NULL' failed georgepee at gmail dot com
                   ` (10 preceding siblings ...)
  2022-12-16 16:27 ` tromey at sourceware dot org
@ 2022-12-20 23:03 ` simark at simark dot ca
  2022-12-21  4:49 ` simark at simark dot ca
  12 siblings, 0 replies; 14+ messages in thread
From: simark at simark dot ca @ 2022-12-20 23:03 UTC (permalink / raw)
  To: gdb-prs

https://sourceware.org/bugzilla/show_bug.cgi?id=29395

Simon Marchi <simark at simark dot ca> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |simark at simark dot ca

--- Comment #9 from Simon Marchi <simark at simark dot ca> ---
I dissected the debug info a bit while looking at what GDB is doing.  The
execution is stopped in this hierarchy, in /usr/bin/kicad:

0x0000057d: DW_TAG_compile_unit
              DW_AT_producer    ("GNU C++14 12.2.0 -march=x86-64 -mtune=generic
-g -g -O2 -O2 -std=c++14 -fno-plt -fexceptions -fstack-clash-protection
-fcf-protection=full -fPIE -fvisibility=hidden -fvisibility-inlines-hidden")
              DW_AT_language    (DW_LANG_C_plus_plus_14)
              DW_AT_name       
("/usr/src/debug/kicad/kicad/kicad/dialogs/dialog_template_selector_base.cpp")
              DW_AT_comp_dir    ("/usr/src/debug/kicad/build/kicad")
              DW_AT_ranges      (0x0000187d
... snip ...
              DW_AT_low_pc      (0x0000000000000000)
              DW_AT_stmt_list   (0x00000178)


0x00031917:   DW_TAG_subprogram
                DW_AT_specification     (0x00009a0c
"_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9_M_assignERKS4_")
                DW_AT_decl_file
("/usr/include/c++/12.2.0/bits/basic_string.tcc")
                DW_AT_decl_line (273)
                DW_AT_decl_column       (0x05)
                DW_AT_object_pointer    (0x0003193b)
                DW_AT_low_pc    (0x00000000002946d0)
                DW_AT_high_pc   (0x00000000002947c8)
                DW_AT_frame_base        (DW_OP_call_frame_cfa)
                DW_AT_call_all_calls    (true)
                DW_AT_sibling   (0x00031ecf)

0x00031961:     DW_TAG_lexical_block
                  DW_AT_ranges  (0x000017a0
                     [0x00000000002946f5, 0x0000000000294729)
                     [0x0000000000294750, 0x00000000002947c2))
                  DW_AT_sibling (0x00031ec1)

0x00031c77:       DW_TAG_inlined_subroutine
                    DW_AT_abstract_origin       (0x000327c8
"_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE13_M_set_lengthEm")
                    DW_AT_entry_pc      (0x000000000029471d)
                    DW_AT_GNU_entry_view        (0x0000)
                    DW_AT_ranges        (0x00001846
                       [0x000000000029471d, 0x0000000000294729)
                       [0x00000000002947ac, 0x00000000002947b8))
                    DW_AT_call_file    
("/usr/include/c++/12.2.0/bits/basic_string.tcc")
                    DW_AT_call_line     (293)
                    DW_AT_call_column   (0x11)
                    DW_AT_sibling       (0x00031d4e)

0x00031cee:         DW_TAG_inlined_subroutine
                      DW_AT_abstract_origin     (0x0003290b
"_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7_M_dataEv")
                      DW_AT_entry_pc    (0x0000000000294721)
                      DW_AT_GNU_entry_view      (0x0001)
                      DW_AT_ranges      (0x00001858
                         [0x0000000000294721, 0x0000000000294721)
                         [0x00000000002947ac, 0x00000000002947b8))
                      DW_AT_call_file  
("/usr/include/c++/12.2.0/bits/basic_string.h")
                      DW_AT_call_line   (268)
                      DW_AT_call_column (0x1d)
                      DW_AT_sibling     (0x00031d17)


get_frame_block calls get_frame_address_in_block_if_available, which returns
0x2947ab (actually, the relocated version of it, but I'm using the unrelocated
version here so it matches the debug info above).  This is because
get_frame_address_in_block_if_available returns "pc - 1".  This address falls
outside the block the frame is in, if you look at the last
DW_TAG_inlined_subroutine's ranges.  Another unrelated block is returned by
block_for_pc.  The value returned by frame_inlined_callees (which counts the
number of inlined frame using the frame_infos) doesn't match the expected
number of "inlined subroutine block" we see by going up the block tree, we
eventually reach the global block and try to get its superblock.

So I think that the root of the problem is get_frame_address_in_block not
returning the right thing.

In addition to checking that `gdb_assert (bl != NULL);`, I think that
get_frame_block should check that the block obtained from `bl->superblock ()`
isn't the global block nor the static block.  I think we always expect to reach
a block that comes from a DW_TAG_subprogram or more precise.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [Bug backtrace/29395] blockframe.c:79: internal-error: get_frame_block: Assertion `bl != NULL' failed.
  2022-07-22 13:02 [Bug backtrace/29395] New: blockframe.c:79: internal-error: get_frame_block: Assertion `bl != NULL' failed georgepee at gmail dot com
                   ` (11 preceding siblings ...)
  2022-12-20 23:03 ` simark at simark dot ca
@ 2022-12-21  4:49 ` simark at simark dot ca
  12 siblings, 0 replies; 14+ messages in thread
From: simark at simark dot ca @ 2022-12-21  4:49 UTC (permalink / raw)
  To: gdb-prs

https://sourceware.org/bugzilla/show_bug.cgi?id=29395

--- Comment #10 from Simon Marchi <simark at simark dot ca> ---
(In reply to Simon Marchi from comment #9)
> I dissected the debug info a bit while looking at what GDB is doing.  The
> execution is stopped in this hierarchy, in /usr/bin/kicad:
> 
> 0x0000057d: DW_TAG_compile_unit
>               DW_AT_producer    ("GNU C++14 12.2.0 -march=x86-64
> -mtune=generic -g -g -O2 -O2 -std=c++14 -fno-plt -fexceptions
> -fstack-clash-protection -fcf-protection=full -fPIE -fvisibility=hidden
> -fvisibility-inlines-hidden")
>               DW_AT_language    (DW_LANG_C_plus_plus_14)
>               DW_AT_name       
> ("/usr/src/debug/kicad/kicad/kicad/dialogs/dialog_template_selector_base.
> cpp")
>               DW_AT_comp_dir    ("/usr/src/debug/kicad/build/kicad")
>               DW_AT_ranges      (0x0000187d
> ... snip ...
>               DW_AT_low_pc      (0x0000000000000000)
>               DW_AT_stmt_list   (0x00000178)
> 
> 
> 0x00031917:   DW_TAG_subprogram
>                 DW_AT_specification     (0x00009a0c
> "_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9_M_assignERKS4_")
>                 DW_AT_decl_file
> ("/usr/include/c++/12.2.0/bits/basic_string.tcc")
>                 DW_AT_decl_line (273)
>                 DW_AT_decl_column       (0x05)
>                 DW_AT_object_pointer    (0x0003193b)
>                 DW_AT_low_pc    (0x00000000002946d0)
>                 DW_AT_high_pc   (0x00000000002947c8)
>                 DW_AT_frame_base        (DW_OP_call_frame_cfa)
>                 DW_AT_call_all_calls    (true)
>                 DW_AT_sibling   (0x00031ecf)
> 
> 0x00031961:     DW_TAG_lexical_block
>                   DW_AT_ranges  (0x000017a0
>                      [0x00000000002946f5, 0x0000000000294729)
>                      [0x0000000000294750, 0x00000000002947c2))
>                   DW_AT_sibling (0x00031ec1)
> 
> 0x00031c77:       DW_TAG_inlined_subroutine
>                     DW_AT_abstract_origin       (0x000327c8
> "_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE13_M_set_lengthEm")
>                     DW_AT_entry_pc      (0x000000000029471d)
>                     DW_AT_GNU_entry_view        (0x0000)
>                     DW_AT_ranges        (0x00001846
>                        [0x000000000029471d, 0x0000000000294729)
>                        [0x00000000002947ac, 0x00000000002947b8))
>                     DW_AT_call_file    
> ("/usr/include/c++/12.2.0/bits/basic_string.tcc")
>                     DW_AT_call_line     (293)
>                     DW_AT_call_column   (0x11)
>                     DW_AT_sibling       (0x00031d4e)
> 
> 0x00031cee:         DW_TAG_inlined_subroutine
>                       DW_AT_abstract_origin     (0x0003290b
> "_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7_M_dataEv")
>                       DW_AT_entry_pc    (0x0000000000294721)
>                       DW_AT_GNU_entry_view      (0x0001)
>                       DW_AT_ranges      (0x00001858
>                          [0x0000000000294721, 0x0000000000294721)
>                          [0x00000000002947ac, 0x00000000002947b8))
>                       DW_AT_call_file  
> ("/usr/include/c++/12.2.0/bits/basic_string.h")
>                       DW_AT_call_line   (268)
>                       DW_AT_call_column (0x1d)
>                       DW_AT_sibling     (0x00031d17)
> 
> 
> get_frame_block calls get_frame_address_in_block_if_available, which returns
> 0x2947ab (actually, the relocated version of it, but I'm using the
> unrelocated version here so it matches the debug info above).  This is
> because get_frame_address_in_block_if_available returns "pc - 1".  This
> address falls outside the block the frame is in, if you look at the last
> DW_TAG_inlined_subroutine's ranges.  Another unrelated block is returned by
> block_for_pc.  The value returned by frame_inlined_callees (which counts the
> number of inlined frame using the frame_infos) doesn't match the expected
> number of "inlined subroutine block" we see by going up the block tree, we
> eventually reach the global block and try to get its superblock.
> 
> So I think that the root of the problem is get_frame_address_in_block not
> returning the right thing.
> 
> In addition to checking that `gdb_assert (bl != NULL);`, I think that
> get_frame_block should check that the block obtained from `bl->superblock
> ()` isn't the global block nor the static block.  I think we always expect
> to reach a block that comes from a DW_TAG_subprogram or more precise.

Scratch all this, get_frame_address_in_block is working as expected, as
explained by the comment in it.  We are inspecting a non-current frame, so
0x2947ac is the address execution will return to.  The -1 is to get to an
address belonging to the call instruction just before:

  2947a6:       ff 15 f4 cc 77 00       call   *0x77ccf4(%rip)        # a114a0
<wmemcpy@GLIBC_2.2.5>
  2947ac:       4c 8b 23                mov    (%rbx),%r12

0x2947ab gets us here:

0x00047016: DW_TAG_compile_unit
              DW_AT_producer    ("GNU C++14 12.2.0 -march=x86-64 -mtune=generic
-g -g -O2 -O2 -std=c++14 -fno-plt -fexceptions -fstack-clash-protection
-fcf-protection=full -fPIE -fvisibility=hi
dden -fvisibility-inlines-hidden")
              DW_AT_language    (DW_LANG_C_plus_plus_14)
              DW_AT_name       
("/usr/src/debug/kicad/kicad/kicad/dialogs/dialog_template_selector.cpp")
              DW_AT_comp_dir    ("/usr/src/debug/kicad/build/kicad")
              DW_AT_ranges      (0x00003a4b
...snip...
              DW_AT_low_pc      (0x0000000000000000)
              DW_AT_stmt_list   (0x0000575b)


0x0007aa2b:   DW_TAG_subprogram
                DW_AT_specification     (0x00050552
"_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9_M_assignERKS4_") 
                DW_AT_decl_file
("/usr/include/c++/12.2.0/bits/basic_string.tcc")
                DW_AT_decl_line (273)
                DW_AT_decl_column       (0x05)
                DW_AT_object_pointer    (0x0007aa4f)
                DW_AT_low_pc    (0x00000000002946d0)
                DW_AT_high_pc   (0x00000000002947c8)
                DW_AT_frame_base        (DW_OP_call_frame_cfa)
                DW_AT_call_all_calls    (true)
                DW_AT_sibling   (0x0007afe0)


0x0007aa75:     DW_TAG_lexical_block
                  DW_AT_ranges  (0x00002a86
                     [0x00000000002946f5, 0x0000000000294729)
                     [0x0000000000294750, 0x00000000002947c2))
                  DW_AT_sibling (0x0007afd2)


0x0007ae94:       DW_TAG_inlined_subroutine
                    DW_AT_abstract_origin       (0x0007bd6c
"_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7_S_copyEPwPKwm")
                    DW_AT_entry_pc      (0x0000000000294788)
                    DW_AT_GNU_entry_view        (0x0001)
                    DW_AT_low_pc        (0x0000000000294788)
                    DW_AT_high_pc       (0x00000000002947ac)
                    DW_AT_call_file    
("/usr/include/c++/12.2.0/bits/basic_string.tcc")
                    DW_AT_call_line     (291)
                    DW_AT_call_column   (0x13)


0x0007af20:         DW_TAG_inlined_subroutine
                      DW_AT_abstract_origin     (0x00096bf5
"_ZNSt11char_traitsIwE4copyEPwPKwm")
                      DW_AT_entry_pc    (0x00000000002947a0)
                      DW_AT_GNU_entry_view      (0x0001)
                      DW_AT_low_pc      (0x00000000002947a0)
                      DW_AT_high_pc     (0x00000000002947ac)
                      DW_AT_call_file  
("/usr/include/c++/12.2.0/bits/basic_string.h")
                      DW_AT_call_line   (423)
                      DW_AT_call_column (0x15)


0x0007af6a:           DW_TAG_inlined_subroutine
                        DW_AT_abstract_origin   (0x00057a96 "wmemcpy")
                        DW_AT_entry_pc  (0x00000000002947a0)
                        DW_AT_GNU_entry_view    (0x0004)
                        DW_AT_low_pc    (0x00000000002947a0)
                        DW_AT_high_pc   (0x00000000002947ac)
                        DW_AT_call_file
("/usr/include/c++/12.2.0/bits/char_traits.h")
                        DW_AT_call_line (558)
                        DW_AT_call_column       (0x10)

Which makes sense, that gives us three inline frames, which is what
frame_inlined_callees returns.  However, block_for_pc returns a seemingly
unrelated block, in a different CU:

0x04037ab0: DW_TAG_compile_unit
              DW_AT_producer    ("GNU C++14 12.2.0 -march=x86-64 -mtune=generic
-g -g -O2 -O2 -std=c++14 -fno-plt -fexceptions -fstack-clash-protection
-fcf-protection=full -fPIC -fvisibility=hi
dden -fvisibility-inlines-hidden")
              DW_AT_language    (DW_LANG_C_plus_plus_14)
              DW_AT_name       
("/usr/src/debug/kicad/kicad/scripting/python_scripting.cpp")
              DW_AT_comp_dir    ("/usr/src/debug/kicad/build/scripting")
              DW_AT_ranges      (0x002e47d7
...snip...
              DW_AT_low_pc      (0x0000000000000000)
              DW_AT_stmt_list   (0x0070635a)


0x040c6ebb:   DW_TAG_subprogram
                DW_AT_specification     (0x0403c948
"_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE9_M_assignERKS4_")
                DW_AT_decl_file
("/usr/include/c++/12.2.0/bits/basic_string.tcc")
                DW_AT_decl_line (273)
                DW_AT_decl_column       (0x05)
                DW_AT_object_pointer    (0x040c6edf)
                DW_AT_low_pc    (0x00000000002946d0)
                DW_AT_high_pc   (0x00000000002947c8)
                DW_AT_frame_base        (DW_OP_call_frame_cfa)
                DW_AT_call_all_calls    (true)
                DW_AT_sibling   (0x040c73d8)


0x040c6f05:     DW_TAG_lexical_block
                  DW_AT_ranges  (0x002d725f
                     [0x00000000002946f5, 0x0000000000294729)
                     [0x0000000000294750, 0x00000000002947c2))
                  DW_AT_sibling (0x040c73ca)


0x040c7216:       DW_TAG_inlined_subroutine
                    DW_AT_abstract_origin       (0x040d4dcd
"_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE13_M_set_lengthEm")
                    DW_AT_entry_pc      (0x000000000029471d)
                    DW_AT_GNU_entry_view        (0x0000)
                    DW_AT_ranges        (0x002d7305
                       [0x000000000029471d, 0x0000000000294729)
                       [0x00000000002947ab, 0x00000000002947b8))
                    DW_AT_call_file    
("/usr/include/c++/12.2.0/bits/basic_string.tcc")
                    DW_AT_call_line     (293)
                    DW_AT_call_column   (0x11)
                    DW_AT_sibling       (0x040c72ed)


0x040c728d:         DW_TAG_inlined_subroutine
                      DW_AT_abstract_origin     (0x040d4f10
"_ZNKSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE7_M_dataEv")
                      DW_AT_entry_pc    (0x0000000000294721)
                      DW_AT_GNU_entry_view      (0x0001)
                      DW_AT_ranges      (0x002d7317
                         [0x0000000000294721, 0x0000000000294721)
                         [0x00000000002947ab, 0x00000000002947b8))
                      DW_AT_call_file  
("/usr/include/c++/12.2.0/bits/basic_string.h")
                      DW_AT_call_line   (268)
                      DW_AT_call_column (0x1d)
                      DW_AT_sibling     (0x040c72b6)

In fact, there are many DW_TAG_inlined_subroutine DIEs that have that
[0x00000000002947ab, 0x00000000002947b8) range.  It appears wrong, as you can
see in the disassembly above, there's no instruction starting at 0x2947ab, so
I'm not sure why a block range would start there.  Plus the fact that it's
overlapping with that other DW_TAG_inlined_subroutine.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2022-12-21  4:49 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-07-22 13:02 [Bug backtrace/29395] New: blockframe.c:79: internal-error: get_frame_block: Assertion `bl != NULL' failed georgepee at gmail dot com
2022-07-25 15:27 ` [Bug backtrace/29395] " georgepee at gmail dot com
2022-08-24 13:20 ` georgepee at gmail dot com
2022-12-15 18:08 ` seth.pellegrino at gmail dot com
2022-12-15 18:11 ` simon.marchi at polymtl dot ca
2022-12-15 18:43 ` seth.pellegrino at gmail dot com
2022-12-15 19:14 ` simon.marchi at polymtl dot ca
2022-12-15 20:09 ` simon.marchi at polymtl dot ca
2022-12-15 20:27 ` simon.marchi at polymtl dot ca
2022-12-15 21:02 ` seth.pellegrino at gmail dot com
2022-12-15 21:12 ` simon.marchi at polymtl dot ca
2022-12-16 16:27 ` tromey at sourceware dot org
2022-12-20 23:03 ` simark at simark dot ca
2022-12-21  4:49 ` simark at simark dot ca

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).