aboutsummaryrefslogtreecommitdiff
path: root/gnu/usr.bin/gdb
Commit message (Collapse)AuthorAgeFilesLines
* Retire obsolete GDB 6.1.1Ed Maste2020-12-1561-14908/+0
| | | | | | | | | | | | | | | | | | | | | GDB 6.1.1 was released in June 2004 and is long obsolete. It does not support all of the architectures that FreeBSD does, and imposes limitations on the FreeBSD kernel build, such as the continued use of DWARF2 debugging information. It was kept (in /usr/libexec/) only for use by crashinfo(8), which extracts some basic information from a kernel core dump after a crash. Crashinfo already prefers gdb from port/package if installed. Future work may add kernel debug support to LLDB or find another path for crashinfo's needs, but in any case we do not want to ship the excessively outdated GDB in FreeBSD 13. Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D27610 Notes: svn path=/head/; revision=368667
* build: provide a default WARNS for all in-tree buildsKyle Evans2020-09-181-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | The current default is provided in various Makefile.inc in some top-level directories and covers a good portion of the tree, but doesn't cover parts of the build a little deeper (e.g. libcasper). Provide a default in src.sys.mk and set WARNS to it in bsd.sys.mk if that variable is defined. This lets us relatively cleanly provide a default WARNS no matter where you're building in the src tree without breaking things outside of the tree. Crunchgen has been updated as a bootstrap tool to work on this change because it needs r365605 at a minimum to succeed. The cleanup necessary to successfully walk over this change on WITHOUT_CLEAN builds has been added. There is a supplemental project to this to list all of the warnings that are encountered when the environment has WARNS=6 NO_WERROR=yes: https://warns.kevans.dev -- this project will hopefully eventually go away in favor of CI doing a much better job than it. Reviewed by: emaste, brooks, ngie (all earlier version) Reviewed by: emaste, arichardson (depend-cleanup.sh change) Differential Revision: https://reviews.freebsd.org/D26455 Notes: svn path=/head/; revision=365887
* userland build: replace -fno-common with ${CFCOMMONFLAG}Kyle Evans2020-04-101-1/+1
| | | | | | | | | | | | | | | | | This change allows any downstream or otherwise consumer to easily override the new -fno-common default on a temporary basis without having to hack into src.sys.mk, and also makes it a bit easier to search for these specific cases where -fno-common must be overridden with -fcommon or else the build will fail. The gdb build, the only program requiring -fcommon on head/, is switched over as an example usage. It will need it on all branches, so this does not harm future mergability. MFC after: 3 days Notes: svn path=/head/; revision=359774
* drop GDB_LIBEXEC option (now always true)Ed Maste2020-03-302-7/+1
| | | | | | | | | | | | | | | | | | | | | | | In-tree gdb is essentially obsolete. We kept it for sparc64 (because gdb in ports lacked sparc64 support) and as a fallback for crashinfo. gdb was installed to /libexec on all archs other than sparc64, where the WITHOUT_GDB_LIBEXEC option was default, with gdb installed to /usr/bin. With sparc64's retirement WITH_GDB_LIBEXEC became the default for all architectures, but it was still possible to set it off and install gdb into /usr/bin. As the next step in gdb's retirement, remove the option and install gdb only into /libexec as the crashinfo fallback. We expect users to install the gdb port or package for debugging. The in-tree gdb lacks support for a number of supported architectures and does not support contemporary DWARF debug info. Reviewed by: jhb (earlier) Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D24227 Notes: svn path=/head/; revision=359457
* gdb: compile with -fcommon explicitlyKyle Evans2020-03-291-0/+5
| | | | | | | | | | | | | As described in the comment, gdb relies on some of the linker magic that happens with -fcommon. I suspect the life expectancy of gdb-in-base is low enough that this isn't worth spending much time addressing, especially given the vintage. Hit it with the -fcommon hammer so that it continues to just work. MFC after: 3 days Notes: svn path=/head/; revision=359432
* Get the readline header from the installed header instead of the from the sourceBaptiste Daroussin2019-09-121-1/+1
| | | | | | | location. Notes: svn path=/head/; revision=352249
* Remove usesless readline compat includes which will reinclude readline.hBaptiste Daroussin2019-09-121-1/+0
| | | | | | | | | itself. This simplifies the upcoming update to newer libedit. Notes: svn path=/head/; revision=352242
* Fix gdb/kgdb build under WITH_PIEEd Maste2019-04-012-6/+8
| | | | | | | | | | Explicitly specified bare .a libraries need ${PIE_SUFFIX}. Reported by: David E. Cross, on twitter Sponsored by: The FreeBSD Foundation Notes: svn path=/head/; revision=345778
* Disable sbrk() use in GNU tools.Brooks Davis2018-09-217-7/+7
| | | | | | | | | | | | | | We're studing the possibility of deprecating sbrk(). To make it easier we're removing unnecessicary uses in the base system. None of these tools require sbrk(), but they agressively prefer it for no good reason. Reviewed by: andrew Approved by: re (kib) Sponsored by: DARPA, AFRL Differential Revision: https://reviews.freebsd.org/D16141 Notes: svn path=/head/; revision=338860
* i386 4/4G split.Konstantin Belousov2018-04-131-1/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The change makes the user and kernel address spaces on i386 independent, giving each almost the full 4G of usable virtual addresses except for one PDE at top used for trampoline and per-CPU trampoline stacks, and system structures that must be always mapped, namely IDT, GDT, common TSS and LDT, and process-private TSS and LDT if allocated. By using 1:1 mapping for the kernel text and data, it appeared possible to eliminate assembler part of the locore.S which bootstraps initial page table and KPTmap. The code is rewritten in C and moved into the pmap_cold(). The comment in vmparam.h explains the KVA layout. There is no PCID mechanism available in protected mode, so each kernel/user switch forth and back completely flushes the TLB, except for the trampoline PTD region. The TLB invalidations for userspace becomes trivial, because IPI handlers switch page tables. On the other hand, context switches no longer need to reload %cr3. copyout(9) was rewritten to use vm_fault_quick_hold(). An issue for new copyout(9) is compatibility with wiring user buffers around sysctl handlers. This explains two kind of locks for copyout ptes and accounting of the vslock() calls. The vm_fault_quick_hold() AKA slow path, is only tried after the 'fast path' failed, which temporary changes mapping to the userspace and copies the data to/from small per-cpu buffer in the trampoline. If a page fault occurs during the copy, it is short-circuit by exception.s to not even reach C code. The change was motivated by the need to implement the Meltdown mitigation, but instead of KPTI the full split is done. The i386 architecture already shows the sizing problems, in particular, it is impossible to link clang and lld with debugging. I expect that the issues due to the virtual address space limits would only exaggerate and the split gives more liveness to the platform. Tested by: pho Discussed with: bde Sponsored by: The FreeBSD Foundation MFC after: 1 month Differential revision: https://reviews.freebsd.org/D14633 Notes: svn path=/head/; revision=332489
* Use the trapframe unwinder for "fast_syscall_common".John Baldwin2018-03-091-0/+1
| | | | | | | MFC after: 3 days Notes: svn path=/head/; revision=330708
* Switch to use libedit instead of readlineBaptiste Daroussin2018-02-063-6/+4
| | | | Notes: svn path=/head/; revision=328926
* Remove gdbtui, it was already not installed on every archesBaptiste Daroussin2018-02-063-46/+0
| | | | | | | | | | only installed on arm and sparc64. It is the only bits that keeps us having libreadline in base The rest of gdb can be switched to libedit and will be in another commit Notes: svn path=/head/; revision=328925
* Recognize mchk_calltrap as a trapframe generator.John Baldwin2018-01-191-0/+1
| | | | | | | Should have been included in r328157. Notes: svn path=/head/; revision=328158
* DIRDEPS_BUILD: Update dependencies.Bryan Drewery2017-10-314-4/+0
| | | | | | | Sponsored by: Dell EMC Isilon Notes: svn path=/head/; revision=325188
* Make _TO_CPUARCH macro for ARCH to CPUARCH conversionsWarner Losh2017-08-122-2/+2
| | | | | | | | | | | | Consolidate all the regular expressions to convert from MACHINE_ARCH to MACHINE_CPUARCH into a variable and use that variable in preference to the almost identical copies in the tree (which should have been identical). Differential Revision: https://reviews.freebsd.org/D11986 Notes: svn path=/head/; revision=322429
* Add deprecation notices for gdb and kgdb.John Baldwin2017-07-052-1/+16
| | | | | | | | | | | | | | Even though gdb and kgdb may not be removed for 12.0 on some architectures, the notice is unconditional as these tools will likely be removed at some point in the future when adequate replacements are available (gdb in ports or lldb in base). Reviewed by: emaste MFC after: 3 days Differential Revision: https://reviews.freebsd.org/D11477 Notes: svn path=/head/; revision=320675
* Add a new GDB_LIBEXEC option to install gdb and kgdb to /usr/libexec.John Baldwin2017-04-252-1/+12
| | | | | | | | | | | | | | | | | | | When this option is enabled, only gdb and kgdb are installed to /usr/libexec for use by crashinfo(8). Other bits of GDB such as gdbserver and gdbtui are not installed. For this option to be effective, GDB must be enabled. Rework r317094 to re-enable GDB on all platforms but enable GDB_LIBEXEC on platforms for which the GDB in ports is a superset of functionality. Reviewed by: emaste, kib Suggested by: kib Relnotes: yes Differential Revision: https://reviews.freebsd.org/D10449 Notes: svn path=/head/; revision=317416
* Use SRCTOP/OBJTOP and simplify output using :H instead of "../" for directoryEnji Cooper2017-02-111-12/+10
| | | | | | | | | | | | entries This simplifies pathing in make/displayed output MFC after: 1 week Sponsored by: Dell EMC Isilon Notes: svn path=/head/; revision=313650
* Use SRCTOP-relative paths to other directories instead of .CURDIR-relative onesEnji Cooper2017-01-201-1/+1
| | | | | | | | | | This simplifies pathing in make/displayed output MFC after: 3 weeks Sponsored by: Dell EMC Isilon Notes: svn path=/head/; revision=312514
* Add full softfloat and hardfloat support for MIPS.Ruslan Bukin2016-10-312-2/+2
| | | | | | | | | | | | | | This adds new target architectures for hardfloat: mipselhf mipshf mips64elhf mips64hf. Tested in QEMU only. Sponsored by: DARPA, AFRL Sponsored by: HEIF5 Differential Revision: https://reviews.freebsd.org/D8376 Notes: svn path=/head/; revision=308130
* Create a new MACHINE_ARCH for Freescale PowerPC e500v2Justin Hibbits2016-10-222-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: The Freescale e500v2 PowerPC core does not use a standard FPU. Instead, it uses a Signal Processing Engine (SPE)--a DSP-style vector processor unit, which doubles as a FPU. The PowerPC SPE ABI is incompatible with the stock powerpc ABI, so a new MACHINE_ARCH was created to deal with this. Additionaly, the SPE opcodes overlap with Altivec, so these are mutually exclusive. Taking advantage of this fact, a new file, powerpc/booke/spe.c, was created with the same function set as in powerpc/powerpc/altivec.c, so it becomes effectively a drop-in replacement. setjmp/longjmp were modified to save the upper 32-bits of the now-64-bit GPRs (upper 32-bits are only accessible by the SPE). Note: This does _not_ support the SPE in the e500v1, as the e500v1 SPE does not support double-precision floating point. Also, without a new MACHINE_ARCH it would be impossible to provide binary packages which utilize the SPE. Additionally, no work has been done to support ports, work is needed for this. This also means no newer gcc can yet be used. However, gcc's powerpc support has been refactored which would make adding a powerpcspe-freebsd target very easy. Test Plan: This was lightly tested on a RouterBoard RB800 and an AmigaOne A1222 (P1022-based) board, compiled against the new ABI. Base system utilities (/bin/sh, /bin/ls, etc) still function appropriately, the system is able to boot multiuser. Reviewed By: bdrewery, imp Relnotes: yes Differential Revision: https://reviews.freebsd.org/D5683 Notes: svn path=/head/; revision=307761
* Revert r302670 and r302671 for now.Bryan Drewery2016-07-132-2/+2
| | | | | | | | MACHINE_CPUARCH smells like MACHINE except for arm64/aarch64 which has it backwards. Notes: svn path=/head/; revision=302690
* Create one list of replacements for MACHINE_CPUARCH as MACHINE_CPUARCH_SUB.Bryan Drewery2016-07-122-2/+2
| | | | | | | | | | | | | This also adds missing s/aarch64/arm64 to the sys.mk version and also adds back armv6hf for universe since it was added to the sys.mk version in r300438. MFC after: 3 days Sponsored by: EMC / Isilon Storage Division Differential Revision: https://reviews.freebsd.org/D7159 Notes: svn path=/head/; revision=302670
* Make armv6 hard float abi by default. Kill armv6hf.Warner Losh2016-05-182-2/+2
| | | | | | | | | | Allow CPUTYPE=soft to build the current soft-float abi libraries. Add UPDATING entry to announce this. Approved by: re@ (gjb) Notes: svn path=/head/; revision=300119
* Add missing function prototypes in KGDBWojciech Macek2016-04-207-2/+78
| | | | | | | This fixes the build broken by r298358 Notes: svn path=/head/; revision=298363
* Fix KGDB backtrace on ARMWojciech Macek2016-04-203-18/+74
| | | | | | | | | | | | | | | | | | | | Modify trapframe decoding to properly analyze trapframe. Provide method for fixup_pc. It happens, that in some kernel functions, the GDB stack frame decoder cannot determine both func name and frame size. This is because these functions either contain invalid instruction, or their format does not match standard schema. Detect that scenarios and move PC accordingly to jump into known function schema, which GDB is able to parse. Obtained from: Semihalf Sponsored by: Juniper Networks Reviewed by: kib, zbb Differential Revision: https://reviews.freebsd.org/D5976 Notes: svn path=/head/; revision=298358
* MFHGlen Barber2016-03-025-1253/+19
|\ | | | | | | | | | | | | Sponsored by: The FreeBSD Foundation Notes: svn path=/projects/release-pkg/; revision=296318
| * DIRDEPS_BUILD: Regenerate without local dependencies.Bryan Drewery2016-02-245-1253/+19
| | | | | | | | | | | | | | | | | | | | | | These are no longer needed after the recent 'beforebuild: depend' changes and hooking DIRDEPS_BUILD into a subset of FAST_DEPEND which supports skipping 'make depend'. Sponsored by: EMC / Isilon Storage Division Notes: svn path=/head/; revision=295989
* | MFH r289384-r293170Glen Barber2016-01-045-38/+23
|\| | | | | | | | | | | | | Sponsored by: The FreeBSD Foundation Notes: svn path=/projects/release-pkg/; revision=293172
| * Fix LDADD/DPADD that should be LIBADD.Bryan Drewery2015-12-041-3/+3
| | | | | | | | | | | | | | Sponsored by: EMC / Isilon Storage Division Notes: svn path=/head/; revision=291738
| * Update dependencies after r291406 added libelf to libkvm.Bryan Drewery2015-12-011-0/+1
| | | | | | | | | | | | | | | | | | | | | | Unfortunately filemon/meta mode tracks all indirect dependencies here since ld(1) is reading libelf when linking in libkvm. Churn would be reduced if this was able to be limited to direct dependencies. Sponsored by: EMC / Isilon Storage Division Notes: svn path=/head/; revision=291558
| * Fix a double-semicolon typo in my libkvm changes.John Baldwin2015-11-301-1/+1
| | | | | | | | | | | | | | Submitted by: jmallett Notes: svn path=/head/; revision=291525
| * Add support to libkvm for reading vmcores from other architectures.John Baldwin2015-11-273-29/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Add a kvaddr_type to represent kernel virtual addresses instead of unsigned long. - Add a struct kvm_nlist which is a stripped down version of struct nlist that uses kvaddr_t for n_value. - Add a kvm_native() routine that returns true if an open kvm descriptor is for a native kernel and memory image. - Add a kvm_open2() function similar to kvm_openfiles(). It drops the unused 'swapfile' argument and adds a new function pointer argument for a symbol resolving function. Native kernels still use _fdnlist() from libc to resolve symbols if a resolver function is not supplied, but cross kernels require a resolver. - Add a kvm_nlist2() function similar to kvm_nlist() except that it uses struct kvm_nlist instead of struct nlist. - Add a kvm_read2() function similar to kvm_read() except that it uses kvaddr_t instead of unsigned long for the kernel virtual address. - Add a new kvm_arch switch of routines needed by a vmcore backend. Each backend is responsible for implementing kvm_read2() for a given vmcore format. - Use libelf to read headers from ELF kernels and cores (except for powerpc cores). - Add internal helper routines for the common page offset hash table used by the minidump backends. - Port all of the existing kvm backends to implement a kvm_arch switch and to be cross-friendly by using private constants instead of ones that vary by platform (e.g. PAGE_SIZE). Static assertions are present when a given backend is compiled natively to ensure the private constants match the real ones. - Enable all of the existing vmcore backends on all platforms. This means that libkvm on any platform should be able to perform KVA translation and read data from a vmcore of any platform. Tested on: amd64, i386, sparc64 (marius) Differential Revision: https://reviews.freebsd.org/D3341 Notes: svn path=/head/; revision=291406
| * Use PCB/LR from PCB rather from stack on armv7-gdbZbigniew Bodek2015-10-301-7/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The kernel dump does not store these values on the stack. Use PCB structure to resolve PC and LR properly. Submitted by: Wojciech Macek <wma@semihalf.com> Reviewed by: jhb, kib Obtained from: Semihalf Sponsored by: Juniper Networks Inc. Differential Revision: https://reviews.freebsd.org/D4013 Notes: svn path=/head/; revision=290193
* | Merge from headBaptiste Daroussin2015-10-011-1/+0
|\| | | | | | | Notes: svn path=/projects/release-pkg/; revision=288441
| * When XSAVE support was added on amd64, the FPU save area was movedJohn Baldwin2015-09-291-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | out of 'struct pcb' and into a variable-sized region after the structure. The kgdb code currently only reads the pcb. It does not read in the FPU save area but instead passes stack garbage as the FPU's saved context. Fixing this would mean determining the proper size of the area and fetching it. However, this state is not saved for running CPUs in stoppcbs[], so the callback would also have to know to ignore those pcbs. Instead, just remove the call since it is of limited usefulness. It results in kgdb reporting the state of the FPU/SIMD registers in userland, not their current values in the kernel. In particular, it does not report the correct state for any code in the kernel which does use the FPU and would report incorrect values in that case. Reviewed by: kib MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D3743 Notes: svn path=/head/; revision=288371
* | Merge from headBaptiste Daroussin2015-09-121-3/+3
|\| | | | | | | Notes: svn path=/projects/release-pkg/; revision=287708
| * Use single instance of the identical INKERNEL() and PMC_IN_KERNEL()Konstantin Belousov2015-07-021-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | macros on amd64 and i386. Move the definition to machine/param.h. kgdb defines INKERNEL() too, the conflict is resolved by renaming kgdb version to PINKERNEL(). On i386, correct the lowest kernel address. After the shared page was introduced, USRSTACK no longer points to the last user address + 1 [*] Submitted by: Oliver Pinter [*] Sponsored by: The FreeBSD Foundation MFC after: 1 week Notes: svn path=/head/; revision=285041
* | Move gdb into its own packageBaptiste Daroussin2015-06-161-0/+2
|/ | | | Notes: svn path=/projects/release-pkg/; revision=284473
* Add META_MODE support.Simon J. Gerraty2015-06-135-0/+1351
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | Off by default, build behaves normally. WITH_META_MODE we get auto objdir creation, the ability to start build from anywhere in the tree. Still need to add real targets under targets/ to build packages. Differential Revision: D2796 Reviewed by: brooks imp Notes: svn path=/head/; revision=284345
| * dirdeps.mk now sets DEP_RELDIRSimon J. Gerraty2015-06-085-10/+0
| | | | | | | | Notes: svn path=/projects/bmake/; revision=284172
| * Merge sync of headSimon J. Gerraty2015-05-2710-94/+17
| |\ | |/ |/| | | Notes: svn path=/projects/bmake/; revision=283595
| * Merge from head@274682Simon J. Gerraty2014-11-196-12/+5
| |\ | | | | | | | | | Notes: svn path=/projects/bmake/; revision=274683
| * \ Merge head from 7/28Simon J. Gerraty2014-08-1911-1141/+18
| |\ \ | | | | | | | | | | | | Notes: svn path=/projects/bmake/; revision=270164
| * | | Updated dependenciesSimon J. Gerraty2014-05-164-1/+3
| | | | | | | | | | | | | | | | Notes: svn path=/projects/bmake/; revision=266219
| * | | Updated dependenciesSimon J. Gerraty2014-05-101-0/+2
| | | | | | | | | | | | | | | | Notes: svn path=/projects/bmake/; revision=265802
| * | | Merge headSimon J. Gerraty2014-04-287-6/+49
| |\ \ \ | | | | | | | | | | | | | | | Notes: svn path=/projects/bmake/; revision=265044
| * | | | Updated dependenciesSimon J. Gerraty2013-10-131-8/+6
| | | | | | | | | | | | | | | | | | | | Notes: svn path=/projects/bmake/; revision=256419
| * | | | Merge from headSimon J. Gerraty2013-09-0513-59/+15
| |\ \ \ \ | | | | | | | | | | | | | | | | | | Notes: svn path=/projects/bmake/; revision=255263