Re: kgdb ported to devel/gdb
On Monday, August 31, 2015 02:32:04 PM John Baldwin wrote: > Over the past several months I have ported kgdb to the version of gdb in > ports. > I have a pending patch to the gdb port to add fork following, but once that is > done (and possibly after updating to 7.10) I will try to add my existing work > as a KGDB option on the port. Until such time, you can try the newer kgdb by > checking out my branch from git. > > Here's my cheat sheet on how to build the newer kgdb. Note that if you build > a world with my cross-libkvm patches you should get a kgdb that can debug > i386 cores on amd64 and vice versa. > > All of the targets that the native devel/gdb support have their backends > ported (so x86, sparc64, powerpc and powerpc64). I have not yet ported > arm or mips since those don't work for userland yet in upstream gdb. I > have only compiled non-x86 backends. Testing of the new kgdb on sparc64 > and powerpc would be appreciated. FYI, this is now present in the devel/gdb port as an off-by-default KGDB option (so you need to build the package yourself for now). Eventually we will turn it on by default. I did manage to get powerpc64 running under qemu and both the old and new kgdb do not work with it. I have the new kgdb close, but it is not able to unwind stacks after the first frame. I have not been able to test sparc64. -- John Baldwin ___ freebsd-current@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/freebsd-current To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"
Re: kgdb ported to devel/gdb
On 01/09/2015 00:32, John Baldwin wrote: > Over the past several months I have ported kgdb to the version of gdb in > ports. > I have a pending patch to the gdb port to add fork following, but once that is > done (and possibly after updating to 7.10) I will try to add my existing work > as a KGDB option on the port. Until such time, you can try the newer kgdb by > checking out my branch from git. > > Here's my cheat sheet on how to build the newer kgdb. Note that if you build > a world with my cross-libkvm patches you should get a kgdb that can debug > i386 cores on amd64 and vice versa. > > All of the targets that the native devel/gdb support have their backends > ported (so x86, sparc64, powerpc and powerpc64). I have not yet ported > arm or mips since those don't work for userland yet in upstream gdb. I > have only compiled non-x86 backends. Testing of the new kgdb on sparc64 > and powerpc would be appreciated. > > Steps: > > % git clone https://github.com/bsdjhb/gdb.git > % git checkout freebsd-7.9.1-kgdb > % fetch http://www.freebsd.org/~jhb/gdb/build > % pkg install devel/gdb > > # Having gdb installed will mean you get the python bindings in the right > # place. > > % pkg install gmake > > # I think this is the only build tool you need? > > % ./build > % cd obj > > # Replace 'obj' with 'obj.' for all but amd64 > > % gmake > > # ... wait > > You will now have a binary at 'obj/gdb/kgdb'. I just run it from my obj > tree currently when testing. Once it becomes part of the port it will get > installed as /usr/local/bin/kgdb791 or some such. John, first of all, thank you very much for this! I followed your instructions substituting freebsd-7.10-kgdb for freebsd-7.9.1-kgdb branch (devel/gdb is also at version 7.10) and the build process worked just fine. However, when I try to use the new kgdb it works, but I get some annoying diagnostics: (kgdb) bt Python Exception Installation error: gdb.execute_unwinders function is missing: Python Exception No module named gdb.frames: #0 doadump (textdump=1) at /usr/src/sys/kern/kern_shutdown.c:291 #1 0x8063453f in kern_reboot (howto=260) at /usr/src/sys/kern/kern_shutdown.c:359 Python Exception Installation error: gdb.execute_unwinders function is missing: Python Exception Installation error: gdb.execute_unwinders function is missing: #2 0x80634ba4 in vpanic (fmt=, ap=) at /usr/src/sys/kern/kern_shutdown.c:635 Python Exception Installation error: gdb.execute_unwinders function is missing: #3 0x806348a3 in panic (fmt=) at /usr/src/sys/kern/kern_shutdown.c:568 Python Exception Installation error: gdb.execute_unwinders function is missing: #4 0x8041bba7 in db_panic (addr=, have_addr=, count=, modif=) at /usr/src/sys/ddb/db_command.c:473 Python Exception Installation error: gdb.execute_unwinders function is missing: #5 0x8041b67b in db_command (last_cmdp=, cmd_table=0x0, dopager=) at /usr/src/sys/ddb/db_command.c:440 #6 0x8041b524 in db_command_loop () at /usr/src/sys/ddb/db_command.c:493 Python Exception Installation error: gdb.execute_unwinders function is missing: #7 0x8041de0b in db_trap (type=, code=) at /usr/src/sys/ddb/db_main.c:251 Python Exception Installation error: gdb.execute_unwinders function is missing: Python Exception Installation error: gdb.execute_unwinders function is missing: #8 0x80669de8 in kdb_trap (type=19, code=0, tf=0x80f976d0) at /usr/src/sys/kern/subr_kdb.c:653 Python Exception Installation error: gdb.execute_unwinders function is missing: #9 0x80820d26 in trap (frame=0x80f976d0 ) at /usr/src/sys/amd64/amd64/trap.c:381 #10 0x80809623 in nmi_calltrap () at /usr/src/sys/amd64/amd64/exception.S:514 Python Exception Installation error: gdb.execute_unwinders function is missing: #11 0x80619e1f in __mtx_assert (c=, what=, file=, line=) at /usr/src/sys/kern/kern_mutex.c:842 Backtrace stopped: previous frame inner to this frame (corrupt stack?) Did I miss something? Thanks! -- Andriy Gapon ___ freebsd-current@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/freebsd-current To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"
Re: kgdb ported to devel/gdb
On Fri, Oct 02, 2015 at 09:19:13AM +0300, Andriy Gapon wrote: > On 01/09/2015 00:32, John Baldwin wrote: > > Over the past several months I have ported kgdb to the version of gdb in > > ports. > > I have a pending patch to the gdb port to add fork following, but once that > > is > > done (and possibly after updating to 7.10) I will try to add my existing > > work > > as a KGDB option on the port. Until such time, you can try the newer kgdb > > by > > checking out my branch from git. > > > > Here's my cheat sheet on how to build the newer kgdb. Note that if you > > build > > a world with my cross-libkvm patches you should get a kgdb that can debug > > i386 cores on amd64 and vice versa. > > > > All of the targets that the native devel/gdb support have their backends > > ported (so x86, sparc64, powerpc and powerpc64). I have not yet ported > > arm or mips since those don't work for userland yet in upstream gdb. I > > have only compiled non-x86 backends. Testing of the new kgdb on sparc64 > > and powerpc would be appreciated. > > > > Steps: > > > > % git clone https://github.com/bsdjhb/gdb.git > > % git checkout freebsd-7.9.1-kgdb > > % fetch http://www.freebsd.org/~jhb/gdb/build > > % pkg install devel/gdb > > > > # Having gdb installed will mean you get the python bindings in the right > > # place. > > > > % pkg install gmake > > > > # I think this is the only build tool you need? > > > > % ./build > > % cd obj > > > > # Replace 'obj' with 'obj.' for all but amd64 > > > > % gmake > > > > # ... wait > > > > You will now have a binary at 'obj/gdb/kgdb'. I just run it from my obj > > tree currently when testing. Once it becomes part of the port it will get > > installed as /usr/local/bin/kgdb791 or some such. > > John, > > first of all, thank you very much for this! > > I followed your instructions substituting freebsd-7.10-kgdb for > freebsd-7.9.1-kgdb branch (devel/gdb is also at version 7.10) and the build > process worked just fine. > However, when I try to use the new kgdb it works, but I get some annoying > diagnostics: > > ... Andriy, The patch is also available in D3727. I downloaded the raw diff from there, applied it to $PORTS/devel/gdb, and built it as a port (with the KGDB support option enabled of course). Everything works. Can you try that? https://reviews.freebsd.org/D3727 Regards, Navdeep ___ freebsd-current@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/freebsd-current To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"
Re: kgdb ported to devel/gdb
On Friday, October 02, 2015 09:19:13 AM Andriy Gapon wrote: > On 01/09/2015 00:32, John Baldwin wrote: > > Over the past several months I have ported kgdb to the version of gdb in > > ports. > > I have a pending patch to the gdb port to add fork following, but once that > > is > > done (and possibly after updating to 7.10) I will try to add my existing > > work > > as a KGDB option on the port. Until such time, you can try the newer kgdb > > by > > checking out my branch from git. > > > > Here's my cheat sheet on how to build the newer kgdb. Note that if you > > build > > a world with my cross-libkvm patches you should get a kgdb that can debug > > i386 cores on amd64 and vice versa. > > > > All of the targets that the native devel/gdb support have their backends > > ported (so x86, sparc64, powerpc and powerpc64). I have not yet ported > > arm or mips since those don't work for userland yet in upstream gdb. I > > have only compiled non-x86 backends. Testing of the new kgdb on sparc64 > > and powerpc would be appreciated. > > > > Steps: > > > > % git clone https://github.com/bsdjhb/gdb.git > > % git checkout freebsd-7.9.1-kgdb > > % fetch http://www.freebsd.org/~jhb/gdb/build > > % pkg install devel/gdb > > > > # Having gdb installed will mean you get the python bindings in the right > > # place. > > > > % pkg install gmake > > > > # I think this is the only build tool you need? > > > > % ./build > > % cd obj > > > > # Replace 'obj' with 'obj.' for all but amd64 > > > > % gmake > > > > # ... wait > > > > You will now have a binary at 'obj/gdb/kgdb'. I just run it from my obj > > tree currently when testing. Once it becomes part of the port it will get > > installed as /usr/local/bin/kgdb791 or some such. > > John, > > first of all, thank you very much for this! > > I followed your instructions substituting freebsd-7.10-kgdb for > freebsd-7.9.1-kgdb branch (devel/gdb is also at version 7.10) and the build > process worked just fine. > However, when I try to use the new kgdb it works, but I get some annoying > diagnostics: > > (kgdb) bt > Python Exception Installation error: > gdb.execute_unwinders function is missing: > Python Exception No module named gdb.frames: > #0 doadump (textdump=1) at /usr/src/sys/kern/kern_shutdown.c:291 > #1 0x8063453f in kern_reboot (howto=260) at > /usr/src/sys/kern/kern_shutdown.c:359 > Python Exception Installation error: > gdb.execute_unwinders function is missing: > Python Exception Installation error: > gdb.execute_unwinders function is missing: > #2 0x80634ba4 in vpanic (fmt=, ap=) at > /usr/src/sys/kern/kern_shutdown.c:635 > Python Exception Installation error: > gdb.execute_unwinders function is missing: > #3 0x806348a3 in panic (fmt=) at > /usr/src/sys/kern/kern_shutdown.c:568 > Python Exception Installation error: > gdb.execute_unwinders function is missing: > #4 0x8041bba7 in db_panic (addr=, > have_addr=, count=, modif=) at > /usr/src/sys/ddb/db_command.c:473 > Python Exception Installation error: > gdb.execute_unwinders function is missing: > #5 0x8041b67b in db_command (last_cmdp=, > cmd_table=0x0, > dopager=) at /usr/src/sys/ddb/db_command.c:440 > #6 0x8041b524 in db_command_loop () at > /usr/src/sys/ddb/db_command.c:493 > Python Exception Installation error: > gdb.execute_unwinders function is missing: > #7 0x8041de0b in db_trap (type=, code=) > at > /usr/src/sys/ddb/db_main.c:251 > Python Exception Installation error: > gdb.execute_unwinders function is missing: > Python Exception Installation error: > gdb.execute_unwinders function is missing: > #8 0x80669de8 in kdb_trap (type=19, code=0, tf=0x80f976d0 >) at /usr/src/sys/kern/subr_kdb.c:653 > Python Exception Installation error: > gdb.execute_unwinders function is missing: > #9 0x80820d26 in trap (frame=0x80f976d0 ) at > /usr/src/sys/amd64/amd64/trap.c:381 > #10 0x80809623 in nmi_calltrap () at > /usr/src/sys/amd64/amd64/exception.S:514 > Python Exception Installation error: > gdb.execute_unwinders function is missing: > #11 0x80619e1f in __mtx_assert (c=, what= out>, > file=, line=) at > /usr/src/sys/kern/kern_mutex.c:842 > Backtrace stopped: previous frame inner to this frame (corrupt stack?) > > Did I miss something? > Thanks! I've noticed this as well. I've taken to building gdb without python support for my testing when building out of git for now. -- John Baldwin ___ freebsd-current@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/freebsd-current To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"
kgdb ported to devel/gdb
Over the past several months I have ported kgdb to the version of gdb in ports. I have a pending patch to the gdb port to add fork following, but once that is done (and possibly after updating to 7.10) I will try to add my existing work as a KGDB option on the port. Until such time, you can try the newer kgdb by checking out my branch from git. Here's my cheat sheet on how to build the newer kgdb. Note that if you build a world with my cross-libkvm patches you should get a kgdb that can debug i386 cores on amd64 and vice versa. All of the targets that the native devel/gdb support have their backends ported (so x86, sparc64, powerpc and powerpc64). I have not yet ported arm or mips since those don't work for userland yet in upstream gdb. I have only compiled non-x86 backends. Testing of the new kgdb on sparc64 and powerpc would be appreciated. Steps: % git clone https://github.com/bsdjhb/gdb.git % git checkout freebsd-7.9.1-kgdb % fetch http://www.freebsd.org/~jhb/gdb/build % pkg install devel/gdb # Having gdb installed will mean you get the python bindings in the right # place. % pkg install gmake # I think this is the only build tool you need? % ./build % cd obj # Replace 'obj' with 'obj.' for all but amd64 % gmake # ... wait You will now have a binary at 'obj/gdb/kgdb'. I just run it from my obj tree currently when testing. Once it becomes part of the port it will get installed as /usr/local/bin/kgdb791 or some such. -- John Baldwin ___ freebsd-current@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/freebsd-current To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"