Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 12 May 2020 00:49:25 +0200
From:      freebsd@sysctl.cz
To:        Konstantin Belousov <kostikbel@gmail.com>
Cc:        freebsd-hackers@freebsd.org, Freebsd emulation <freebsd-emulation@freebsd.org>, owner-freebsd-hackers@freebsd.org
Subject:   Re: Debug linux binary with enable linux emulation
Message-ID:  <67eed7f18b68f67ff04f628c4c367535@sysctl.cz>
In-Reply-To: <20200511115656.GF68906@kib.kiev.ua>
References:  <24f30eaa0597d79ddadc10d6f993f2a0@sysctl.cz> <20200511115656.GF68906@kib.kiev.ua>

next in thread | previous in thread | raw e-mail | index | archive | help
Dne 2020-05-11 13:56, Konstantin Belousov napsal:
> On Mon, May 11, 2020 at 12:28:23AM +0200, freebsd@sysctl.cz wrote:
>> Hi,
>> I tried debug with gdb for linux emulation
>> and have issue with kernel panic.
>> 
>> kldload linux64.ko
>> gdb ./Discord or other linux binary
>> 
>> Fatal trap 12: page fault while in kernel mode
>> cpuid = 3; apic id = 03
>> fault virtual address	= 0x18
>> fault code		= supervisor read data, page not present
>> instruction pointer	= 0x20:0xffffffff82f5b682
>> stack pointer	        = 0x28:0xfffffe00691fd980
>> frame pointer	        = 0x28:0xfffffe00691fd9e0
>> code segment		= base 0x0, limit 0xfffff, type 0x1b
>> 			= DPL 0, pres 1, long 1, def32 0, gran 1
>> processor eflags	= interrupt enabled, resume, IOPL = 0
>> current process		= 17392 (fish)
>> trap number		= 12
>> panic: page fault
>> cpuid = 3
>> time = 1589132677
>> KDB: stack backtrace:
>> #0 0xffffffff80c1d2f7 at kdb_backtrace+0x67
>> #1 0xffffffff80bd062d at vpanic+0x19d
>> #2 0xffffffff80bd0483 at panic+0x43
>> #3 0xffffffff810a7dcc at trap_fatal+0x39c
>> #4 0xffffffff810a7e19 at trap_pfault+0x49
>> #5 0xffffffff810a740f at trap+0x29f
>> #6 0xffffffff81081bdc at calltrap+0x8
>> #7 0xffffffff82f503d1 at linux_thread_detach+0x21
> Show the line number for linux_thread_detach+0x21.
> Or better, compile with INVARIANTS, it should fire an assertion.
> Then get a core dump.
> 
>> #8 0xffffffff80be5acf at thread_suspend_check+0x41f
>> #9 0xffffffff80c32ed9 at ast+0x3b9
>> #10 0xffffffff810850e9 at doreti_ast+0x1f
>> Uptime: 2h56m24s
>> Dumping 1146 out of 8042
>> MB:..2%..12%..21%..31%..41%..51%..62%..72%..81%..91%---<<BOOT>>---
>> Copyright (c) 1992-2019 The FreeBSD Project.
>> 
>> GNU gdb (GDB) 9.1 [GDB v9.1 for FreeBSD]
>> Copyright (C) 2020 Free Software Foundation, Inc.
>> License GPLv3+: GNU GPL version 3 or later
>> <http://gnu.org/licenses/gpl.html>;
>> This is free software: you are free to change and redistribute it.
>> There is NO WARRANTY, to the extent permitted by law.
>> Type "show copying" and "show warranty" for details.
>> This GDB was configured as "x86_64-portbld-freebsd12.1".
>> Type "show configuration" for configuration details.
>> For bug reporting instructions, please see:
>> <http://www.gnu.org/software/gdb/bugs/>.
>> Find the GDB manual and other documentation resources online at:
>>     <http://www.gnu.org/software/gdb/documentation/>.
>> 
>> For help, type "help".
>> Type "apropos word" to search for commands related to "word"...
>> Reading symbols from /boot/kernel/kernel...
>> (No debugging symbols found in /boot/kernel/kernel)
>> 0xffffffff80c01eda in sched_switch ()
>> (kgdb)
>> (kgdb)
>> (kgdb) bt
>> #0  0xffffffff80c01eda in sched_switch ()
>> #1  0xffffffff80bdbfa2 in mi_switch ()
>> #2  0xffffffff80c2bb75 in sleepq_catch_signals ()
>> #3  0xffffffff80c2be64 in sleepq_timedwait_sig ()
>> #4  0xffffffff80bdb9a5 in _sleep ()
>> #5  0xffffffff80bf1ee3 in umtxq_sleep ()
>> #6  0xffffffff80bf1c90 in do_wait ()
>> #7  0xffffffff80bef8fe in __umtx_op_wait_uint_private ()
>> #8  0xffffffff810a8984 in amd64_syscall ()
>> #9  <signal handler called>
>> #10 0x000000080974dedc in ?? ()
>> Backtrace stopped: Cannot access memory at address 0x7fffffffddc8
>> 
>> I have now kernel without debug symbols.
>> 
>> M.
>> _______________________________________________
>> freebsd-emulation@freebsd.org mailing list
>> https://lists.freebsd.org/mailman/listinfo/freebsd-emulation
>> To unsubscribe, send any mail to 
>> "freebsd-emulation-unsubscribe@freebsd.org"
> _______________________________________________
> freebsd-hackers@freebsd.org mailing list
> https://lists.freebsd.org/mailman/listinfo/freebsd-hackers
> To unsubscribe, send any mail to 
> "freebsd-hackers-unsubscribe@freebsd.org"



Hi konstantin,
I have good news, now we can look detail

(kgdb) bt
#0  __curthread () at /usr/src/sys/amd64/include/pcpu.h:234
#1  doadump (textdump=<optimized out>) at 
/usr/src/sys/kern/kern_shutdown.c:371
#2  0xffffffff80bd0228 in kern_reboot (howto=260) at 
/usr/src/sys/kern/kern_shutdown.c:451
#3  0xffffffff80bd0689 in vpanic (fmt=<optimized out>, ap=<optimized 
out>) at /usr/src/sys/kern/kern_shutdown.c:877
#4  0xffffffff80bd0483 in panic (fmt=<unavailable>) at 
/usr/src/sys/kern/kern_shutdown.c:804
#5  0xffffffff810a7dcc in trap_fatal (frame=0xfffffe00634e58c0, eva=24) 
at /usr/src/sys/amd64/amd64/trap.c:943
#6  0xffffffff810a7e19 in trap_pfault (frame=0xfffffe00634e58c0, 
usermode=0) at /usr/src/sys/amd64/amd64/trap.c:767
#7  0xffffffff810a740f in trap (frame=0xfffffe00634e58c0) at 
/usr/src/sys/amd64/amd64/trap.c:443
#8  <signal handler called>
#9  release_futexes (td=<optimized out>, em=0x0) at 
/usr/src/sys/compat/linux/linux_futex.c:1283
#10 0xffffffff82f503d1 in linux_thread_detach (td=0xfffff8014bd935e0) at 
/usr/src/sys/compat/linux/linux_fork.c:466
#11 0xffffffff80be5acf in thread_suspend_check (return_instead=0) at 
/usr/src/sys/kern/kern_thread.c:1010
#12 0xffffffff80c32ed9 in ast (framep=0xfffffe00634e5ac0) at 
/usr/src/sys/kern/subr_trap.c:342
#13 0xffffffff810850e9 in doreti_ast () at 
/usr/src/sys/amd64/amd64/exception.S:1149
#14 0x0000000800bb7008 in ?? ()
#15 0x000000000000000f in ?? ()
#16 0x0000000000000000 in ?? ()
(kgdb) list 0xffffffff82f503d1
Function "0xffffffff82f503d1" not defined.
(kgdb) list *0xffffffff82f503d1
0xffffffff82f503d1 is in linux_thread_detach 
(/usr/src/sys/compat/linux/linux_fork.c:468).
warning: Source file is more recent than executable.
463
464        LINUX_CTR1(thread_detach, "thread(%d)", em->em_tid);
465
466        release_futexes(td, em);
467
468        child_clear_tid = em->child_clear_tid;
469
470        if (child_clear_tid != NULL) {
471
472            LINUX_CTR2(thread_detach, "thread(%d) %p",
(kgdb)




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?67eed7f18b68f67ff04f628c4c367535>