diff options
Diffstat (limited to 'dev-debug/gdb')
-rw-r--r-- | dev-debug/gdb/Manifest | 3 | ||||
-rw-r--r-- | dev-debug/gdb/files/gdb-14.1-fix-dll-export-forwarding.patch | 60 | ||||
-rw-r--r-- | dev-debug/gdb/files/gdb-14.1-fix-list-segfault.patch | 101 | ||||
-rw-r--r-- | dev-debug/gdb/files/gdb-14.1-fix-print-global-variable-stubs.patch | 109 |
4 files changed, 0 insertions, 273 deletions
diff --git a/dev-debug/gdb/Manifest b/dev-debug/gdb/Manifest index 158d2932382f..309febd3a45e 100644 --- a/dev-debug/gdb/Manifest +++ b/dev-debug/gdb/Manifest @@ -1,6 +1,3 @@ -AUX gdb-14.1-fix-dll-export-forwarding.patch 1991 BLAKE2B 4ebc8ad29ce57760b7b2a2ae000f66e1339ad694586d4a89137d922e22e12835340e886c0d0fa3eaec5a74bd889c226d0e46bc9bc5a020e211e8094578b92eb5 SHA512 ec049f5a019707422ddf715dec31a6cb50dd9cb772fcdad8ac8c542cb0e87dff3c7ec1ab990be56a37a2cf789ed3f13f24ac4df49d5cc808537f311f4253a510 -AUX gdb-14.1-fix-list-segfault.patch 3774 BLAKE2B 2ce82892ab66411756d618f8a78d408be18d2d497d54743b8f42c9c02a15d29ed7c45c7837c91319f3ad0a10d7e01be0beb91de86934b4a728ac5031bbaea8df SHA512 d2057d68c3e692e73e863e7cbd0577032d375197f549a87e119c4896b9b55832203a0af8f925e2523ea869be8ed9eb26b8b5ddd6205957b3c1e8c31850f004ac -AUX gdb-14.1-fix-print-global-variable-stubs.patch 3387 BLAKE2B ff3adebf74c8b9ca37071182462b03e753bcc5161d84a53bea418780f4615327459e6dc876a37622b4c3fdeac356bcc09c93a852dc2e54e7b59de465948101d2 SHA512 bcee16dc6f8cd0b0a422bea86e0d90414a17b9779c48bc1ccd41414863141a3591a6b2970dcb0426d847a605d7a8cfef6b83fce0353e7a423acea34057b6ac4d AUX gdb-8.3.1-verbose-build.patch 395 BLAKE2B e2e82307ceae64d16aa9b57a5e639eb5d217c4d977aed0847fdf125bb13ebc004906d9afb8e3f629c41efccca88df0040015e7799c1fd24de5fb50f62f5bbd90 SHA512 c2bb013e4fcabefddcd8042bd3cbb53471f83182cc8769fe0d19eed80ccc4a83bd84d120006fa25b3b7d0310dc2f2ec6b44a6ff74909cd312b7e491f371777a3 DIST gdb-14.2-sim-modern-c99.patch.xz 5348 BLAKE2B f8039cdf1b49d12eead0dae7db88dbfad4c47eda696ee26b0bd140605d1d62d4a88557518d4e18c86fffb3c6194782d16e459f4392df71d2ec1af271ccb2838d SHA512 f44239871c584f5d6de98db8d6a6766103a8a6fc92dada7d37f04bdc53efe635cca7dfaa778d620348559814f4784a33e5f72a8dd376dc96fba8ec27032ab389 DIST gdb-14.2.tar.xz 24111936 BLAKE2B 65765dfd1ed08e19bb881fc7ae98d6ee4914f38a9a2bb0d0ca73bef472669664f807fe9c04e8dffd7025be98e736ac52f88ff5851ceddbb01a361885b18befc8 SHA512 7e07941f1fe661288cc571b4964012ceabc1760624fce20320db2f470c01439b2386f859b5288da13204b758e2e3b22a74c68c012178db93b9529b06f1e22ede diff --git a/dev-debug/gdb/files/gdb-14.1-fix-dll-export-forwarding.patch b/dev-debug/gdb/files/gdb-14.1-fix-dll-export-forwarding.patch deleted file mode 100644 index 8c2a49f8042f..000000000000 --- a/dev-debug/gdb/files/gdb-14.1-fix-dll-export-forwarding.patch +++ /dev/null @@ -1,60 +0,0 @@ -Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=31112 - -From https://sourceware.org/git/?p=binutils-gdb.git;a=commitdiff;h=43a608adb04251be8999304cf724f55b2d840ac3 -From: Hannes Domani <ssbssa@yahoo.de> -Date: Wed, 6 Dec 2023 20:52:06 +0100 -Subject: [PATCH] Fix DLL export forwarding - -I noticed it when I was trying to set a breakpoint at ExitProcess: -``` -(gdb) b ExitProcess -Breakpoint 1 at 0x14001fdd0 -(gdb) r -Starting program: C:\qiewer\heob\heob64.exe -Warning: -Cannot insert breakpoint 1. -Cannot access memory at address 0x3dbf4120 -Cannot insert breakpoint 1. -Cannot access memory at address 0x77644120 -``` - -The problem doesn't exist in gdb 13.2, and the difference can easily be -seen when printing ExitProcess. -gdb 14.1: -``` -(gdb) p ExitProcess -$1 = {<text variable, no debug info>} 0x77644120 <UserHandleGrantAccess+36128> -``` -gdb 13.2: -``` -(gdb) p ExitProcess -$1 = {<text variable, no debug info>} 0x77734120 <ntdll!RtlExitUserProcess> -``` - -The new behavior started with 9675da25357c7a3f472731ddc6eb3becc65b469a, -where VMA was then calculated relative to FORWARD_DLL_NAME, while it was -relative to DLL_NAME before. - -Fixed by calculating VMA relative to DLL_NAME again. - -Bug: https://sourceware.org/PR31112 -Approved-By: Tom Tromey <tom@tromey.com> - -(cherry picked from commit 2574cd903dd84e7081506e24c2e232ecda11a736) ---- a/gdb/coff-pe-read.c -+++ b/gdb/coff-pe-read.c -@@ -210,7 +210,10 @@ add_pe_forwarded_sym (minimal_symbol_reader &reader, - " \"%s\" in dll \"%s\", pointing to \"%s\"\n"), - sym_name, dll_name, forward_qualified_name.c_str ()); - -- unrelocated_addr vma = msymbol.minsym->unrelocated_address (); -+ /* Calculate VMA as if it were relative to DLL_NAME/OBJFILE, even though -+ it actually points inside another dll (FORWARD_DLL_NAME). */ -+ unrelocated_addr vma = unrelocated_addr (msymbol.value_address () -+ - objfile->text_section_offset ()); - msymtype = msymbol.minsym->type (); - section = msymbol.minsym->section_index (); - --- -2.39.3 - diff --git a/dev-debug/gdb/files/gdb-14.1-fix-list-segfault.patch b/dev-debug/gdb/files/gdb-14.1-fix-list-segfault.patch deleted file mode 100644 index 76557b5a7e00..000000000000 --- a/dev-debug/gdb/files/gdb-14.1-fix-list-segfault.patch +++ /dev/null @@ -1,101 +0,0 @@ -Bug: https://bugs.gentoo.org/922336 -Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=31256 - -From https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=0068bd6fb3579dd8df7561e038cb3fe27f122b0e -From: Guinevere Larsen <blarsen@redhat.com> -To: gdb-patches@sourceware.org -Cc: Guinevere Larsen <blarsen@redhat.com> -Subject: [PATCH] gdb: fix "list ." related crash -Date: Tue, 23 Jan 2024 11:50:43 +0100 - -When a user attempts to use the "list ." command with an inferior that -doesn't have debug symbols, GDB would crash. This was reported as PR -gdb/31256. - -The crash would happen when attempting to get the current symtab_and_line -for the stop location, because the symtab would return a null pointer -and we'd attempt to dereference it to print the line. - -This commit fixes that by checking for an empty symtab and erroring out -of the function if it happens. - -Bug: https://sourceware.org/PR31256 ---- a/gdb/cli/cli-cmds.c -+++ b/gdb/cli/cli-cmds.c -@@ -1291,6 +1291,8 @@ list_command (const char *arg, int from_tty) - set_default_source_symtab_and_line (); - cursal = get_current_source_symtab_and_line (); - } -+ if (cursal.symtab == nullptr) -+ error (_("No debug information available to print source lines.")); - list_around_line (arg, cursal); - /* Set the repeat args so just pressing "enter" after using "list ." - will print the following lines instead of the same lines again. */ ---- /dev/null -+++ b/gdb/testsuite/gdb.base/list-nodebug.c -@@ -0,0 +1,21 @@ -+/* This testcase is part of GDB, the GNU debugger. -+ -+ Copyright 2024 Free Software Foundation, Inc. -+ -+ This program is free software; you can redistribute it and/or modify -+ it under the terms of the GNU General Public License as published by -+ the Free Software Foundation; either version 3 of the License, or -+ (at your option) any later version. -+ -+ This program is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ GNU General Public License for more details. -+ -+ You should have received a copy of the GNU General Public License -+ along with this program. If not, see <http://www.gnu.org/licenses/>. */ -+ -+int main () -+{ -+ return 0; -+} ---- /dev/null -+++ b/gdb/testsuite/gdb.base/list-nodebug.exp -@@ -0,0 +1,37 @@ -+# Copyright 2024 Free Software Foundation, Inc. -+ -+# This program is free software; you can redistribute it and/or modify -+# it under the terms of the GNU General Public License as published by -+# the Free Software Foundation; either version 3 of the License, or -+# (at your option) any later version. -+# -+# This program is distributed in the hope that it will be useful, -+# but WITHOUT ANY WARRANTY; without even the implied warranty of -+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+# GNU General Public License for more details. -+# -+# You should have received a copy of the GNU General Public License -+# along with this program. If not, see <http://www.gnu.org/licenses/>. -+ -+# Test that using the command "list" in a file with no debug information -+# will not crash GDB and will give reasonable output. -+ -+standard_testfile .c -+ -+if {[prepare_for_testing "failed to prepare" ${testfile} ${srcfile} \ -+ {nodebug}]} { -+ return -1 -+} -+ -+if {![runto_main]} { -+ untested "couldn't run to main" -+ return -+} -+ -+# Check that GDB doesn't crash when we use list . on an inferior with -+# no debug information -+gdb_test "list ." "No debug.*" "first 'list .'" -+# This should be called twice because the first list invocation since -+# printing a frame may take a different codepath, which wouldn't -+# trigger the crash. -+gdb_test "list ." "No debug.*" "second 'list .'" --- -2.43.0 - - diff --git a/dev-debug/gdb/files/gdb-14.1-fix-print-global-variable-stubs.patch b/dev-debug/gdb/files/gdb-14.1-fix-print-global-variable-stubs.patch deleted file mode 100644 index ff0ff7bfb0c3..000000000000 --- a/dev-debug/gdb/files/gdb-14.1-fix-print-global-variable-stubs.patch +++ /dev/null @@ -1,109 +0,0 @@ -Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=31128 - -From https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=bc23ea51f8a83e9524dfb553baa8baacb29e68a9 -From: Hannes Domani <ssbssa@yahoo.de> -Date: Fri, 8 Dec 2023 19:06:14 +0100 -Subject: [PATCH] Fix printing of global variable stubs if no inferior is - running - -Since 3c45e9f915ae4aeab7312d6fc55a947859057572 gdb crashes when trying -to print a global variable stub without a running inferior, because of -a missing nullptr-check (the block_scope function took care of that -check before it was converted to a method). - -With this check it works again: -``` -(gdb) print s -$1 = <incomplete type> -``` - -Bug: https://sourceware.org/PR31128 -Approved-By: Tom Tromey <tom@tromey.com> -(cherry picked from commit 576745e26c0ec76a53ba45b20af464628a50b3e4) ---- a/gdb/cp-namespace.c -+++ b/gdb/cp-namespace.c -@@ -1026,7 +1026,11 @@ cp_lookup_transparent_type (const char *name) - - /* If that doesn't work and we're within a namespace, look there - instead. */ -- scope = get_selected_block (0)->scope (); -+ const block *block = get_selected_block (0); -+ if (block == nullptr) -+ return nullptr; -+ -+ scope = block->scope (); - - if (scope[0] == '\0') - return NULL; ---- /dev/null -+++ b/gdb/testsuite/gdb.cp/print-global-stub.cc -@@ -0,0 +1,31 @@ -+/* This testcase is part of GDB, the GNU debugger. -+ -+ Copyright 2023 Free Software Foundation, Inc. -+ -+ This program is free software; you can redistribute it and/or modify -+ it under the terms of the GNU General Public License as published by -+ the Free Software Foundation; either version 3 of the License, or -+ (at your option) any later version. -+ -+ This program is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ GNU General Public License for more details. -+ -+ You should have received a copy of the GNU General Public License -+ along with this program. If not, see <http://www.gnu.org/licenses/>. */ -+ -+struct S -+{ -+ S (int); -+ virtual ~S (); -+ -+ int m_i; -+}; -+ -+S s (5); -+ -+int main () -+{ -+ return 0; -+} ---- /dev/null -+++ b/gdb/testsuite/gdb.cp/print-global-stub.exp -@@ -0,0 +1,32 @@ -+# Copyright (C) 2023 Free Software Foundation, Inc. -+ -+# This program is free software; you can redistribute it and/or modify -+# it under the terms of the GNU General Public License as published by -+# the Free Software Foundation; either version 3 of the License, or -+# (at your option) any later version. -+# -+# This program is distributed in the hope that it will be useful, -+# but WITHOUT ANY WARRANTY; without even the implied warranty of -+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+# GNU General Public License for more details. -+# -+# You should have received a copy of the GNU General Public License -+# along with this program. If not, see <http://www.gnu.org/licenses/>. -+ -+# This file is part of the GDB testsuite. -+# It tests printing of a global stub without inferior. -+ -+require allow_cplus_tests -+ -+standard_testfile .cc -+set objfile [standard_output_file ${testfile}.o] -+ -+if { [gdb_compile $srcdir/$subdir/$srcfile $objfile object \ -+ {c++ debug}] != "" } { -+ untested "failed to compile" -+ return -1 -+} -+ -+clean_restart $objfile -+ -+gdb_test "print s" " = <incomplete type>" --- -2.39.3 - |