diff --git a/devel/gdb/Makefile b/devel/gdb/Makefile index 3e71a6429f62..375521f29132 100644 --- a/devel/gdb/Makefile +++ b/devel/gdb/Makefile @@ -3,6 +3,7 @@ PORTNAME= gdb PORTVERSION= 7.12.1 +PORTREVISION= 1 CATEGORIES= devel MASTER_SITES= GNU @@ -98,6 +99,8 @@ do-install: do-install-KGDB-on: ${INSTALL_PROGRAM} ${WRKSRC}/gdb/kgdb \ ${STAGEDIR}${PREFIX}/bin/kgdb${VER} + ${INSTALL_MAN} ${FILESDIR}/kgdb/kgdb.1 \ + ${STAGEDIR}${MAN1PREFIX}/man/man1/kgdb${VER}.1 do-install-TUI-on: ${LN} -sf gdb${VER} ${STAGEDIR}${PREFIX}/bin/gdbtui${VER} diff --git a/devel/gdb/files/extrapatch-kgdb b/devel/gdb/files/extrapatch-kgdb index 5b6715e052d0..78f68e81e4e4 100644 --- a/devel/gdb/files/extrapatch-kgdb +++ b/devel/gdb/files/extrapatch-kgdb @@ -95,6 +95,16 @@ index c82a5b4bac..34140b2d59 100644 /* Define if you have and nl_langinfo(CODESET). */ #undef HAVE_LANGINFO_CODESET +diff --git gdb/config/mips/fbsd.mh gdb/config/mips/fbsd.mh +index f433347a20..5470795612 100644 +--- gdb/config/mips/fbsd.mh ++++ gdb/config/mips/fbsd.mh +@@ -1,3 +1,5 @@ + # Host: FreeBSD/mips + NATDEPFILES= fork-child.o inf-ptrace.o fbsd-nat.o mips-fbsd-nat.o + HAVE_NATIVE_GCORE_HOST = 1 ++ ++LOADLIBES= -lkvm diff --git gdb/configure gdb/configure index b5c045cf10..68299ff16c 100755 --- gdb/configure diff --git a/devel/gdb/files/kgdb/fbsd-kld.c b/devel/gdb/files/kgdb/fbsd-kld.c index ef9ac4a598d4..b450e05f032f 100644 --- a/devel/gdb/files/kgdb/fbsd-kld.c +++ b/devel/gdb/files/kgdb/fbsd-kld.c @@ -150,12 +150,16 @@ find_kld_path (char *filename, char *path, size_t path_size) info = get_kld_info(); if (exec_bfd) { - kernel_dir = dirname(bfd_get_filename(exec_bfd)); + kernel_dir = ldirname(bfd_get_filename(exec_bfd)); if (kernel_dir != NULL) { + cleanup = make_cleanup(xfree, kernel_dir); snprintf(path, path_size, "%s/%s", kernel_dir, filename); - if (check_kld_path(path, path_size)) + if (check_kld_path(path, path_size)) { + do_cleanups(cleanup); return (1); + } + do_cleanups(cleanup); } } if (info->module_path_addr != 0) { @@ -206,7 +210,7 @@ find_kld_address (char *arg, CORE_ADDR *address) struct kld_info *info; CORE_ADDR kld; char *kld_filename; - char *filename; + const char *filename; int error; info = get_kld_info(); @@ -214,7 +218,7 @@ find_kld_address (char *arg, CORE_ADDR *address) info->off_filename == 0 || info->off_next == 0) return (0); - filename = basename(arg); + filename = lbasename(arg); for (kld = read_pointer(info->linker_files_addr); kld != 0; kld = read_pointer(kld + info->off_next)) { /* Try to read this linker file's filename. */ diff --git a/devel/gdb/files/kgdb/kgdb.1 b/devel/gdb/files/kgdb/kgdb.1 new file mode 100644 index 000000000000..58d0786dbed7 --- /dev/null +++ b/devel/gdb/files/kgdb/kgdb.1 @@ -0,0 +1,140 @@ +.\" Copyright (c) 2004 Marcel Moolenaar +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +.\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +.\" BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +.\" AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +.\" OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" $FreeBSD$ +.\" +.Dd October 11, 2006 +.Dt KGDB 1 +.Os +.Sh NAME +.Nm kgdb +.Nd "kernel debugger" +.Sh SYNOPSIS +.Nm +.Op Fl a | Fl f | Fl fullname +.Op Fl b Ar rate +.Op Fl q | Fl quiet +.Op Fl v +.Op Fl w +.Op Fl d Ar crashdir +.Op Fl c Ar core | Fl n Ar dumpnr | Fl r Ar device +.Op Ar kernel Op Ar core +.Sh DESCRIPTION +The +.Nm +utility is a debugger based on +.Xr gdb 1 +that allows debugging of kernel core files. +.Pp +The options are as follows: +.Bl -tag -width ".Fl d Ar crashdir" +.It Fl a +Increase the annotation level. +An annotation level of 1 features the historical +.Fl fullname +option of +.Xr gdb 1 . +This is useful when running +.Nm +in Emacs. +The +.Fl f +or +.Fl fullname +options are supported for backward compatibility as well. +.It Fl b Ar rate +Set the baudrate to +.Ar rate . +.It Fl q +Suppress printing of the banner when the debugger starts. +The +.Fl quiet +form is supported for compatibility as well. +.It Fl v +Increase verbosity. +.It Fl w +Opens kmem-based targets in read-write mode. +(This is identical to what +.Fl -wcore +used to do in previous +gdb versions for +.Fx . ) +.It Fl d Ar crashdir +Use +.Ar crashdir +instead of the default, +.Pa /var/crash +to locate kernel core dump files in. +The name +.Pa vmcore. +plus the dump number will be appended to determine +the actual dump file name. +.It Fl c Ar core +Explicitly use +.Ar core +as the core dump file. +.It Fl n Ar dumpnr +Use the kernel core dump file numbered +.Ar dumpnr +for debugging. +.It Fl r Ar device +Use +.Ar device +to connect +.Nm +to for a remote debugging session. +.El +.Pp +The +.Fl c , n , +and +.Fl r +options are mutually exclusive. +.Pp +Optionally, the name of the kernel symbol file and +the name of the core dump file can be supplied on the +command-line as positional arguments. +If no kernel symbol file name has been given, the +symbol file of the currently running kernel will be +used. +If no core dump file has been specified through either +of the options or the last command-line argument, +.Pa /dev/mem +will be opened to allow debugging the currently running +kernel. +.Sh FILES +.Bl -tag -width ".Pa /var/crash" +.It Pa /dev/mem +Default memory image to open if no core dump file +has been specified. +.It Pa /var/crash +Default directory to locate kernel core dump files. +.El +.Sh SEE ALSO +.Xr gdb 1 +.Sh HISTORY +The +.Nm +utility first appeared in its current form in +.Fx 5.3 . diff --git a/devel/gdb/pkg-plist b/devel/gdb/pkg-plist index b4a510cd0353..4350e765e684 100644 --- a/devel/gdb/pkg-plist +++ b/devel/gdb/pkg-plist @@ -4,6 +4,7 @@ bin/gdb%%VER%% %%TUI%%bin/gdbtui%%VER%% %%KGDB%%bin/kgdb%%VER%% man/man1/gdb%%VER%%.1.gz +%%KGDB%%man/man1/kgdb%%VER%%.1.gz %%PYTHON%%%%DATADIR%%%%VER%%/python/gdb/__init__.py %%PYTHON%%%%DATADIR%%%%VER%%/python/gdb/FrameDecorator.py %%PYTHON%%%%DATADIR%%%%VER%%/python/gdb/FrameIterator.py