From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id 2CABF3857816; Sat, 14 Nov 2020 02:52:17 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 2CABF3857816 From: "simark at simark dot ca" To: gdb-prs@sourceware.org Subject: [Bug gdb/26876] gdb error: internal-error: Unknown CFA rule when debugging the linux kernel with qemu Date: Sat, 14 Nov 2020 02:52:17 +0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gdb X-Bugzilla-Component: gdb X-Bugzilla-Version: 10.1 X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: simark at simark dot ca X-Bugzilla-Status: UNCONFIRMED X-Bugzilla-Resolution: X-Bugzilla-Priority: P2 X-Bugzilla-Assigned-To: unassigned at sourceware dot org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: http://sourceware.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-BeenThere: gdb-prs@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-prs mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 14 Nov 2020 02:52:17 -0000 https://sourceware.org/bugzilla/show_bug.cgi?id=3D26876 --- Comment #2 from Simon Marchi --- Well, to my surprise, I managed to reproduce! 1. I installed an ubuntu 20.04 guest in qemu 2. I built and installed a kernel in it 3. I debugged the qemu guest (add -s to the qemu command line, don't forget= to pass nokaslr to the Linux kernel) First, the backtrace: #0 0x000055befa524260 in execute_cfa_program (fde=3D0x621000f84c90, insn_ptr=3D0x7fab8d86da86 , insn_end=3D0x7fab8d86da90 , gdbarch=3D0x621000be3d10, pc=3D0xffffffff81b3318e, fs=3D0x7ffe0a288d10, text_offset=3D0x0) at /home/smarchi/src/binutils-gdb/gdb/dwarf2/frame.c:367 #1 0x000055befa52bf02 in dwarf2_frame_cache (this_frame=3D0x6210006cfde0, this_cache=3D0x6210006cfdf8) at /home/smarchi/src/binutils-gdb/gdb/dwarf2/frame.c:1025 #2 0x000055befa52ea38 in dwarf2_frame_this_id (this_frame=3D0x6210006cfde0, this_cache=3D0x6210006cfdf8, this_id=3D0x6210006cfe40) at /home/smarchi/src/binutils-gdb/gdb/dwarf2/frame.c:1226 #3 0x000055befa8dde95 in compute_frame_id (fi=3D0x6210006cfde0) at /home/smarchi/src/binutils-gdb/gdb/frame.c:588 #4 0x000055befa8de53e in get_frame_id (fi=3D0x6210006cfde0) at /home/smarchi/src/binutils-gdb/gdb/frame.c:636 #5 0x000055befa8ecf33 in get_prev_frame (this_frame=3D0x6210006cfde0) at /home/smarchi/src/binutils-gdb/gdb/frame.c:2504 #6 0x000055befb1ff582 in frame_info_to_frame_object (frame=3D0x6210006cfde= 0) at /home/smarchi/src/binutils-gdb/gdb/python/py-frame.c:364 #7 0x000055befb201016 in gdbpy_newest_frame (self=3D0x7fabbcb11a40, args= =3D0x0) at /home/smarchi/src/binutils-gdb/gdb/python/py-frame.c:599 #8 0x00007fabc25f01aa in cfunction_vectorcall_NOARGS (func=3D0x7fabbca78d6= 0, args=3D, nargsf=3D, kwnames=3D= ) at ../Objects/methodobject.c:459 #9 0x00007fabc2405d6d in _PyObject_Vectorcall (kwnames=3D, nargsf=3D, args=3D, callable=3D) at ../Include/cpython/abstract.h:127 #10 call_function (tstate=3D0x612000009940, pp_stack=3D0x7ffe0a289370, oparg=3D, kwnames=3D0x0) at ../Python/ceval.c:4963 #11 0x00007fabc240def6 in _PyEval_EvalFrameDefault (f=3D, throwflag=3D) at ../Python/ceval.c:3469 #12 0x00007fabc241106b in function_code_fastcall (co=3D, args=3D, nargs=3D1, globals=3D) at ../Objects/call.c:283 #13 0x00007fabc2405d6d in _PyObject_Vectorcall (kwnames=3D, nargsf=3D, args=3D, callable=3D) at ../Include/cpython/abstract.h:127 #14 call_function (tstate=3D0x612000009940, pp_stack=3D0x7ffe0a289540, oparg=3D, kwnames=3D0x0) at ../Python/ceval.c:4963 #15 0x00007fabc240def6 in _PyEval_EvalFrameDefault (f=3D, throwflag=3D) at ../Python/ceval.c:3469 #16 0x00007fabc241106b in function_code_fastcall (co=3D, args=3D, nargs=3D2, globals=3D) at ../Objects/call.c:283 #17 0x00007fabc2405d6d in _PyObject_Vectorcall (kwnames=3D, nargsf=3D, args=3D, callable=3D) at ../Include/cpython/abstract.h:127 #18 call_function (tstate=3D0x612000009940, pp_stack=3D0x7ffe0a289710, oparg=3D, kwnames=3D0x0) at ../Python/ceval.c:4963 #19 0x00007fabc2407018 in _PyEval_EvalFrameDefault (f=3D, throwflag=3D) at ../Python/ceval.c:3486 #20 0x00007fabc255bd3b in _PyEval_EvalCodeWithName (_co=3D, globals=3D, locals=3D, args=3D, argcount=3D1, kwnames=3D0x0, kwargs=3D0x7fabbcb17d98, kwcount=3D0, kwstep= =3D1, defs=3D0x0, defcount=3D0, kwdefs=3D0x0, closure=3D0x7fabbca970a0, name=3D0x7fabbcbc9470, qualname=3D0x7faba48cfc90) at ../Python/ceval.c:4298 #21 0x00007fabc2638de4 in _PyFunction_Vectorcall (func=3D, stack=3D, nargsf=3D, kwnames=3D) at ../Objects/call.c:435 #22 0x00007fabc2405d6d in _PyObject_Vectorcall (kwnames=3D, nargsf=3D, args=3D, callable=3D) at ../Include/cpython/abstract.h:127 #23 call_function (tstate=3D0x612000009940, pp_stack=3D0x7ffe0a2899c8, oparg=3D, kwnames=3D0x0) at ../Python/ceval.c:4963 #24 0x00007fabc240746d in _PyEval_EvalFrameDefault (f=3D, throwflag=3D) at ../Python/ceval.c:3500 #25 0x00007fabc255bd3b in _PyEval_EvalCodeWithName (_co=3D, globals=3D, locals=3D, args=3D, argcount=3D1, kwnames=3D0x0, kwargs=3D0x7faba4734c50, kwcount=3D0, kwstep= =3D1, defs=3D0x0, defcount=3D0, kwdefs=3D0x0, closure=3D0x0, name=3D0x7faba4742a30, qualname=3D0x7faba4736210) at ../Python/ceval.c:4298 #26 0x00007fabc2638de4 in _PyFunction_Vectorcall (func=3D, stack=3D, nargsf=3D, kwnames=3D) at ../Objects/call.c:435 #27 0x00007fabc2405d6d in _PyObject_Vectorcall (kwnames=3D, nargsf=3D, args=3D, callable=3D) at ../Include/cpython/abstract.h:127 #28 call_function (tstate=3D0x612000009940, pp_stack=3D0x7ffe0a289c70, oparg=3D, kwnames=3D0x0) at ../Python/ceval.c:4963 #29 0x00007fabc2407018 in _PyEval_EvalFrameDefault (f=3D, throwflag=3D) at ../Python/ceval.c:3486 #30 0x00007fabc241106b in function_code_fastcall (co=3D, args=3D, nargs=3D3, globals=3D) at ../Objects/call.c:283 #31 0x00007fabc2639da8 in _PyObject_Vectorcall (kwnames=3D0x0, nargsf=3D3, args=3D0x7ffe0a289d80, callable=3D0x7faba48d8430) at ../Include/cpython/abstract.h:127 #32 _PyObject_FastCall (nargs=3D3, args=3D0x7ffe0a289d80, func=3D0x7faba48d= 8430) at ../Include/cpython/abstract.h:147 #33 object_vacall (base=3Dbase@entry=3D0x7faba48da080, callable=3D0x7faba48= d8430, vargs=3Dvargs@entry=3D0x7ffe0a289e10) at ../Objects/call.c:1186 #34 0x00007fabc263a14c in PyObject_CallMethodObjArgs (obj=3D0x7faba48da080, name=3D) at ../Objects/call.c:1214 #35 0x000055befb1f0966 in cmdpy_function (command=3D0x6110001d2d00, args=3D0x55befd892b20 "", from_tty=3D1) at /home/smarchi/src/binutils-gdb/gdb/python/py-cmd.c:141 #36 0x000055befa256cb4 in cmd_func (cmd=3D0x6110001d2d00, args=3D0x0, from_= tty=3D1) at /home/smarchi/src/binutils-gdb/gdb/cli/cli-decode.c:2181 #37 0x000055befb9c2ace in execute_command (p=3D0x60200005109b "", from_tty= =3D1) at /home/smarchi/src/binutils-gdb/gdb/top.c:668 #38 0x000055befa858fca in command_handler (command=3D0x602000051090 "lx-sym= bols ") at /home/smarchi/src/binutils-gdb/gdb/event-top.c:589 #39 0x000055befa859cc5 in command_line_handler (rl=3D...) at /home/smarchi/src/binutils-gdb/gdb/event-top.c:774 #40 0x000055befa856f93 in gdb_rl_callback_handler (rl=3D0x602000051010 "lx-symbols ") at /home/smarchi/src/binutils-gdb/gdb/event-top.c:219 #41 0x000055befbda9a4d in rl_callback_read_char () at /home/smarchi/src/binutils-gdb/readline/readline/callback.c:281 #42 0x000055befa8569d4 in gdb_rl_callback_read_char_wrapper_noexcept () at /home/smarchi/src/binutils-gdb/gdb/event-top.c:177 #43 0x000055befa856c02 in gdb_rl_callback_read_char_wrapper (client_data=3D0x60f000000310) at /home/smarchi/src/binutils-gdb/gdb/event-top.c:194 #44 0x000055befa85856c in stdin_event_handler (error=3D0, client_data=3D0x60f000000310) at /home/smarchi/src/binutils-gdb/gdb/event-top.c:516 #45 0x000055befcec2717 in handle_file_event (file_ptr=3D0x606000069260, ready_mask=3D1) at /home/smarchi/src/binutils-gdb/gdbsupport/event-loop.cc:= 575 #46 0x000055befcec2f58 in gdb_wait_for_event (block=3D1) at /home/smarchi/src/binutils-gdb/gdbsupport/event-loop.cc:701 #47 0x000055befcec0cf6 in gdb_do_one_event () at /home/smarchi/src/binutils-gdb/gdbsupport/event-loop.cc:237 #48 0x000055befadfda4e in start_event_loop () at /home/smarchi/src/binutils-gdb/gdb/main.c:347 #49 0x000055befadfde7d in captured_command_loop () at /home/smarchi/src/binutils-gdb/gdb/main.c:407 #50 0x000055befae02861 in captured_main (data=3D0x7ffe0a28ab80) at /home/smarchi/src/binutils-gdb/gdb/main.c:1234 #51 0x000055befae02944 in gdb_main (args=3D0x7ffe0a28ab80) at /home/smarchi/src/binutils-gdb/gdb/main.c:1249 #52 0x000055bef9c3e442 in main (argc=3D2, argv=3D0x7ffe0a28acf8) at /home/smarchi/src/binutils-gdb/gdb/gdb.c:32 So we are executing the CIE of this FDE: (top-gdb) p *fde $4 =3D { cie =3D 0x621000f84bb0, initial_location =3D 0xffffffff81b33180, address_range =3D 0xf, instructions =3D 0x7fab8d86db08 , end =3D 0x7fab8d86db08 , eh_frame_p =3D 0 '\000' } It's really strange that top-gdb can't access the memory of the program we = are supposed to be executing: (top-gdb) p insn_ptr $9 =3D (const gdb_byte *) 0x7fab8d86da86 (top-gdb) p fde.cie.initial_instructions=20 $10 =3D (const gdb_byte *) 0x7fab8d86da85 --=20 You are receiving this mail because: You are on the CC list for the bug.=