public inbox for gdb-prs@sourceware.org
help / color / mirror / Atom feed
From: "simon.marchi at polymtl dot ca" <sourceware-bugzilla@sourceware.org>
To: gdb-prs@sourceware.org
Subject: [Bug backtrace/29395] blockframe.c:79: internal-error: get_frame_block: Assertion `bl != NULL' failed.
Date: Thu, 15 Dec 2022 20:09:28 +0000	[thread overview]
Message-ID: <bug-29395-4717-iBwdphbzdU@http.sourceware.org/bugzilla/> (raw)
In-Reply-To: <bug-29395-4717@http.sourceware.org/bugzilla/>

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.

  parent reply	other threads:[~2022-12-15 20:09 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-07-22 13:02 [Bug backtrace/29395] New: " 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 [this message]
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

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=bug-29395-4717-iBwdphbzdU@http.sourceware.org/bugzilla/ \
    --to=sourceware-bugzilla@sourceware.org \
    --cc=gdb-prs@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).