summaryrefslogtreecommitdiff
path: root/sys/ddb
AgeCommit message (Collapse)Author
2017-12-13Add 'bt' an alias for 'trace'.Martin Pieuchot
ok pirofti@
2017-12-11In uvm Chuck decided backing store would not be allocated proactivelyTheo de Raadt
for blocks re-fetchable from the filesystem. However at reboot time, filesystems are unmounted, and since processes lack backing store they are killed. Since the scheduler is still running, in some cases init is killed... which drops us to ddb [noted by bluhm]. Solution is to convert filesystems to read-only [proposed by kettenis]. The tale follows: sys_reboot() should pass proc * to MD boot() to vfs_shutdown() which completes current IO with vfs_busy VB_WRITE|VB_WAIT, then calls VFS_MOUNT() with MNT_UPDATE | MNT_RDONLY, soon teaching us that *fs_mount() calls a copyin() late... so store the sizes in vfsconflist[] and move the copyin() to sys_mount()... and notice nfs_mount copyin() is size-variant, so kill legacy struct nfs_args3. Next we learn ffs_mount()'s MNT_UPDATE code is sharp and rusty especially wrt softdep, so fix some bugs adn add ~MNT_SOFTDEP to the downgrade. Some vnodes need a little more help, so tie them to &dead_vnops. ffs_mount calling DIOCCACHESYNC is causing a bit of grief still but this issue is seperate and will be dealt with in time. couple hundred reboots by bluhm and myself, advice from guenther and others at the hut
2017-11-27Remove MALLOC_DEBUG left overs.Martin Pieuchot
From Klemens Nanni.
2017-11-06remove ctf_type declaration no longer needed since -r1.33Jasper Lievisse Adriaanse
ok mpi@
2017-11-01Remove forward declaration hack now that ctfconv(1) merge them correctly.Martin Pieuchot
ok jasper@
2017-10-27Use <elf.h> in !_KERNEL code path.Martin Pieuchot
2017-10-19ddb "show all mounts" showed everything except the address of theAlexander Bluhm
mount point. Print it to allow debugging through the data structures from there. OK krw@
2017-10-13return a missing return (was left out of previous)Jasper Lievisse Adriaanse
2017-10-13- use db_printf()Jasper Lievisse Adriaanse
- refuse to pretty-print if there's no CTF ok mpi@
2017-10-11missing prototype for db_ctf_pprintJasper Lievisse Adriaanse
ok mpi@
2017-09-29New ddb(4) command: kill.Martin Pieuchot
Send an uncatchable SIGABRT to the process specified by the pid argument. Useful in case of CPU exhaustion to kill the DoSing process and generate a core for later inspection. ok phessler@, visa@, kettenis@, miod@
2017-09-12Remove option DDB_STRUCTINFO. Now that ddb(4) is CTF aware, similarMartin Pieuchot
functionnalities are available in GENERIC. ok jasper@, deraadt@, guenther@, dlg@
2017-09-12Skip forward declarations until ctfconv(1) properly merge them withMartin Pieuchot
the corresponding struct definitions. ok dlg@
2017-09-08If you use sys/param.h, you don't need sys/types.hTheo de Raadt
2017-09-06use sizeof(variable) instead of sizeof(type) to shorten some codeDavid Gwynne
2017-09-06when pretty printing a pointer, display its value instead of address.David Gwynne
this makes it consistent with printing of other values. ok mpi@
2017-09-06replace the DDB_STRUCT backend for "show struct" with ctf code.David Gwynne
this lets you inspect arbitrary memory in the kernel as a specified struct. ok mpi@ jasper@
2017-08-14db_ctf_pprintf() doesn't actually support formatting, so s/f$//Uwe Stuehler
ok mpi@
2017-08-14Restore "print" in ddb; add "pp[rint]" for pretty-printingUwe Stuehler
Changing the "print" command to use db_ctf_pprint_cmd() broke all documented uses and "examine" does not allow printing variables, or individual registers. For now it is better to leave the "print" command intact, and in sync with the ddb(4) man page, but we still want "pp[rint]" to replace the "print" command when it works better. ok mpi@
2017-08-11Merge DDBCTF into DDB.Martin Pieuchot
2017-08-11Fall back using db_print_cmd() if no CTF data has been found.Martin Pieuchot
2017-08-11Improve pretty printing of pointers.Martin Pieuchot
ok jasper@
2017-08-11Kernel compilation with DDBPROF enabled fails as db_sym_t is no longerNayden Markatchev
defined (removed in "Kill db_sym_t." from 2017-05-30 11:39 mpi). This change fixes the problem. OK mpi@
2017-08-11Remove debugging leftovers, document functions, bump copyright.Martin Pieuchot
2017-08-10With a CTF kernel, DDB's print command will now pretty-print symbols.Martin Pieuchot
Casting a type is not yet supported. ok kettenis@, jasper@
2017-07-29Goodbye, sys/dkbad.h, you lost your last friend when sparc was removed.Vadim Zhukov
Spotted and diff provided by Andrey Bolkonskiy <andrey0bolkonsky@gmail.com>, thanks! okay deraadt@
2017-05-30Header sys/scanio.h has been deleted, do not include it here.Alexander Bluhm
2017-05-30Kill db_sym_t.Martin Pieuchot
ok deraadt@, kettenis@, jasper@
2017-05-29Pass the symbol instead of its name when looking for CTF infos.Martin Pieuchot
ok jasper@
2017-05-28If a function is not found in the CTF data, do not assume it takes noMartin Pieuchot
argument.
2017-05-28Merge two functions to lookup ELF sections by name.Martin Pieuchot
ok claudio@, jasper@
2017-05-27Make ddb print again filename and linenumber if a bsd.gdb was loaded.Claudio Jeker
mpi@ agrees that this is correct.
2017-05-27Spring cleanup:Martin Pieuchot
- Cache the string table pointer - Unify return statements - Use the end of the symbol table rather than counting symbols
2017-05-09Use C99 types.Martin Pieuchot
2017-04-30Rename Debugger() into db_enter().Martin Pieuchot
Using a name with the 'db_' prefix makes it invisible from the dynamic profiler. ok deraadt@, kettenis@, visa@
2017-04-30Unifdef KGDB.Martin Pieuchot
It doesn't compile und hasn't been working during the last decade. ok kettenis@, deraadt@
2017-04-20Add a port of witness(4) lock validation tool from FreeBSD.Visa Hankala
Go-ahead from kettenis@, guenther@, deraadt@
2017-04-20Add routines for saving stack traces and printing saved tracesVisa Hankala
on amd64 and i386. With guenther@
2017-02-08Use ELF_ST_{BIND,TYPE} instead of ELFDEFNNAME(ST_{BIND,TYPE})Philip Guenther
ok jca@
2017-02-06Implement Dynamic Profiling, a ddb(4) based & gprof compatible kernelMartin Pieuchot
profiling framework, for i386. Code patching is used to enable probes when entering functions. The probes will call a mcount()-like function to match the behavior of a GPROF kernel. A new sysctl knob, ddb.profile, need to be set to 1 in securelevel 0 to be able to use this feature. ok jasper@, guenther@, mlarkin@
2017-01-09Revert previous, it's a documented behavior and people might rely on it.Martin Pieuchot
Pointed by deraadt@
2017-01-09Stop and restart the watchdog timer when entering and leaving ddb(4).Martin Pieuchot
From Christian Ludwig.
2016-10-18Add the examine /m format, "display in unsigned hex with characterChristian Weisgerber
dump at the end of each line", which has always been documented but not implemented. Mostly from NetBSD, but I fixed the column alignment code. ok mlarkin@, pirofti@
2016-09-18- inline db_ctf_nsyms() into it's only caller. the value remains cached andJasper Lievisse Adriaanse
won't change, so there's no reason to call it again. - remove explicit return from void function ok mpi@
2016-09-17rename ddb/db_ctf.h to sys/ctf.h which is the expected location for the publicJasper Lievisse Adriaanse
CTF bits. ok kettenis@ mpi@
2016-09-17move the .SUNW_ctf section name definition to exec_elf.h and document it in ↵Jasper Lievisse Adriaanse
elf(5) feedback from guenther@ ok guenther@ kettenis@
2016-09-16teach ddb(4) about CTF. currently it only loads the CTF and uses it on amd64Jasper Lievisse Adriaanse
to lookup the number of function parameters. however having this basic facility allows us to expand it's usage. currently hidden behind the (disabled) DDBCTF kernel option as some of the required tools are not available in base yet. in addition to that one also needs recent bootblocks that load the .SUNW_ctf kernel section. discussed with mpi@ over many a cider and ale in cambridge feedback and ok guenther@ mpi@
2016-09-16drop unneeded casting noiseJasper Lievisse Adriaanse
pointed out by guenther@ in a separate diff
2016-09-04Introduce Dynamic Profiling, a ddb(4) based & gprof compatible kernelMartin Pieuchot
profiling framework. Code patching is used to enable probes when entering functions. The probes will call a mcount()-like function to match the behavior of a GPROF kernel. Currently only available on amd64 and guarded under DDBPROF. Support for other archs will follow soon. A new sysctl knob, ddb.console, need to be set to 1 in securelevel 0 to be able to use this feature. Inputs and ok guenther@
2016-09-03make intrace a volatile, while the compiler does the right thing stillJasper Lievisse Adriaanse
(no change in the generated code), it's more correct and helps the reader. ok deraadt@ guenther@