aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
24 hoursAutomatic date update in version.ingdb-15-branchGDB Administrator1-1/+1
2 daysAutomatic date update in version.inGDB Administrator1-1/+1
3 daysAutomatic date update in version.inGDB Administrator1-1/+1
4 daysAutomatic date update in version.inGDB Administrator1-1/+1
5 daysAutomatic date update in version.inGDB Administrator1-1/+1
6 daysAutomatic date update in version.inGDB Administrator1-1/+1
7 daysAutomatic date update in version.inGDB Administrator1-1/+1
8 daysAutomatic date update in version.inGDB Administrator1-1/+1
9 daysAutomatic date update in version.inGDB Administrator1-1/+1
10 daysAutomatic date update in version.inGDB Administrator1-1/+1
11 daysAutomatic date update in version.inGDB Administrator1-1/+1
12 daysAutomatic date update in version.inGDB Administrator1-1/+1
13 daysAutomatic date update in version.inGDB Administrator1-1/+1
2024-10-06Automatic date update in version.inGDB Administrator1-1/+1
2024-10-05Automatic date update in version.inGDB Administrator1-1/+1
2024-10-04Automatic date update in version.inGDB Administrator1-1/+1
2024-10-03Automatic date update in version.inGDB Administrator1-1/+1
2024-10-02Automatic date update in version.inGDB Administrator1-1/+1
2024-10-01Automatic date update in version.inGDB Administrator1-1/+1
2024-09-30Automatic date update in version.inGDB Administrator1-1/+1
2024-09-29Bump GDB's version number to 15.2.90.DATE-git.Joel Brobecker2-2/+2
This commit changes gdb/version.in to 15.2.90.DATE-git. This commit also makes the following changes in gdb/testsuite: * gdb.base/default.exp: Change $_gdb_minor to 3.
2024-09-29Set GDB version number to 15.2.gdb-15.2-releaseJoel Brobecker1-1/+1
This commit changes gdb/version.in to 15.2.
2024-09-29Automatic date update in version.inGDB Administrator1-1/+1
2024-09-28Automatic date update in version.inGDB Administrator1-1/+1
2024-09-27Automatic date update in version.inGDB Administrator1-1/+1
2024-09-26Automatic date update in version.inGDB Administrator1-1/+1
2024-09-26[gdb/python] Make sure python sys.exit makes gdb exitTom de Vries2-0/+98
With gdb 15.1, python sys.exit no longer makes gdb exit: ... $ gdb -q -batch -ex "python sys.exit(2)" -ex "print 123"; echo $? Python Exception <class 'SystemExit'>: 2 Error occurred in Python: 2 $1 = 123 0 ... This is a change in behaviour since commit a207f6b3a38 ("Rewrite "python" command exception handling"), first available in gdb 15.1. This patch reverts to the old behaviour by handling PyExc_SystemExit in gdbpy_handle_exception, such what we have instead: ... $ gdb -q -batch -ex "python sys.exit(2)" -ex "print 123"; echo $? 2 ... Tested on x86_64-linux, with python 3.6 and 3.13. Tested-By: Guinevere Larsen <blarsen@redhat.com> Approved-By: Tom Tromey <tom@tromey.com> PR python/31946 Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=31946
2024-09-25Automatic date update in version.inGDB Administrator1-1/+1
2024-09-24Automatic date update in version.inGDB Administrator1-1/+1
2024-09-23Automatic date update in version.inGDB Administrator1-1/+1
2024-09-22Automatic date update in version.inGDB Administrator1-1/+1
2024-09-21Automatic date update in version.inGDB Administrator1-1/+1
2024-09-20Automatic date update in version.inGDB Administrator1-1/+1
2024-09-19Automatic date update in version.inGDB Administrator1-1/+1
2024-09-18Automatic date update in version.inGDB Administrator1-1/+1
2024-09-17Automatic date update in version.inGDB Administrator1-1/+1
2024-09-16Automatic date update in version.inGDB Administrator1-1/+1
2024-09-15[gdb/symtab] Revert "Change handling of DW_TAG_enumeration_type in DWARF ↵Tom de Vries3-9/+44
scanner" After adding dwarf assembly to test-case gdb.dwarf2/enum-type.exp that adds this debug info: ... <1><11f>: Abbrev Number: 3 (DW_TAG_enumeration_type) <120> DW_AT_specification: <0x130> <2><124>: Abbrev Number: 4 (DW_TAG_enumerator) <125> DW_AT_name : val1 <12a> DW_AT_const_value : 1 <2><12b>: Abbrev Number: 0 <1><12c>: Abbrev Number: 5 (DW_TAG_namespace) <12d> DW_AT_name : ns <2><130>: Abbrev Number: 6 (DW_TAG_enumeration_type) <131> DW_AT_name : e <133> DW_AT_type : <0x118> <137> DW_AT_declaration : 1 ... I run into an assertion failure: ... (gdb) file enum-type^M Reading symbols from enum-type...^M cooked-index.h:214: internal-error: get_parent: \ Assertion `(flags & IS_PARENT_DEFERRED) == 0' failed.^M ... This was reported in PR32160 comment 1. This is a regression since commit 4e417d7bb1c ("Change handling of DW_TAG_enumeration_type in DWARF scanner"). Fix this by reverting the commit. [ Also drop the kfails for PR31900 and PR32158, which are regressions by that same commit. ] That allows us to look at the output of "maint print objfiles", and for val1 we get an entry without parent: ... [27] ((cooked_index_entry *) 0x7fbbb4002ef0) name: val1 canonical: val1 qualified: val1 DWARF tag: DW_TAG_enumerator flags: 0x0 [] DIE offset: 0x124 parent: ((cooked_index_entry *) 0) ... which is incorrect, as noted in that same comment, but an improvement over the assertion failure, and I don't think that ever worked. This is to be addressed in a follow-up patch. Reverting the commit begs the question: what was it trying to fix in the first place, and do we need a different fix? I've investigated this and filed PR32160 to track this. My guess is that the commit was based on a misunderstand of what we track in cooked_indexer::m_die_range_map. Each DIE has two types of parent DIEs: - a DIE that is the parent as indicated by the tree structure in which DIEs occur, and - a DIE that represent the parent scope. In most cases, these two are the same, but some times they're not. The debug info above demonstrates such a case. The DIE at 0x11f: - has a tree-parent: the DIE representing the CU, and - has a scope-parent: DIE 0x12c representing namespace ns. In cooked_indexer::m_die_range_map, we track scope-parents, and the commit tried to add a tree-parent instead. So, I don't think we need a different fix, and propose we backport the reversal for gdb 15.2. Tested on x86_64-linux. Approved-By: Tom Tromey <tom@tromey.com> Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=31900 Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=32158 Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=32160 (cherry picked from commit a2860473ef13cfebcd9fddc067b7b36ca56c6b81)
2024-09-15[gdb/testsuite] Add regression test for PR32158Tom de Vries2-0/+18
Consider test-case: ... namespace ns { enum class ec { val2 = 2 }; } int main () { return (int)ns::ec::val2; } ... compiled with debug info: ... $ g++ test.c -g ... When looking at the cooked index entry for val2 using "maint print objfiles", we get: ... [7] ((cooked_index_entry *) 0x7f8ecc002ef0) name: val2 canonical: val2 qualified: ns::val2 DWARF tag: DW_TAG_enumerator flags: 0x0 [] DIE offset: 0xe9 parent: ((cooked_index_entry *) 0x7f8ecc002e90) [ns] ... which is wrong, there is no source level entity ns::val2. This is PR symtab/32158. This is a regression since commit 4e417d7bb1c ("Change handling of DW_TAG_enumeration_type in DWARF scanner"). Reverting the commit on current trunk fixes the problem, and gets us instead: ... [7] ((cooked_index_entry *) 0x7fba70002ef0) name: val2 canonical: val2 qualified: ns::ec::val2 DWARF tag: DW_TAG_enumerator flags: 0x0 [] DIE offset: 0xe9 parent: ((cooked_index_entry *) 0x7fba70002ec0) [ec] ... Add a regression test for this PR in test-case gdb.dwarf2/enum-type-c++.exp. Tested on x86_64-linux. Approved-By: Tom Tromey <tom@tromey.com> Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=32158 (cherry picked from commit 93a20d956e633cc1a87e68d88d2fc51adc787857)
2024-09-15[gdb/testsuite] Add gdb.dwarf2/enum-type-c++.exp, regression test for PR31900.Tom de Vries2-0/+73
Consider the following test-case: ... $ cat a.h namespace ns { class A { public: enum { val1 = 1 }; }; } $ cat main.c ns::A a; int main (void) { return 0; } $ cat val1.c int u1 = ns::A::val1; ... compiled with debug info: ... $ g++ main.c val1.c -g ... When trying to print ns::A::val with current trunk and gdb 15.1 we get: ... $ gdb -q -batch a.out -ex "print ns::A::val1" There is no field named val1 ... This PR c++/31900. With gdb 14.2 we get the expected: ... $ gdb -q -batch a.out -ex "print ns::A::val1" $1 = ns::A::val1 ... This is a regression since commit 4e417d7bb1c ("Change handling of DW_TAG_enumeration_type in DWARF scanner"). Reverting the commit on current trunk fixes the problem. So how does this problem happen? First, let's consider the current trunk, with the commit reverted. Gdb looks for the entry ns::A::val1, and find this entry: ... [29] ((cooked_index_entry *) 0x7f7830002ef0) name: val1 canonical: val1 qualified: ns::A::val1 DWARF tag: DW_TAG_enumerator flags: 0x0 [] DIE offset: 0x15a parent: ((cooked_index_entry *) 0x7f7830002ec0) [A] ... and expands the corresponding CU val1.c containing this debug info: ... <2><14a>: Abbrev Number: 3 (DW_TAG_class_type) <14b> DW_AT_name : A <14d> DW_AT_byte_size : 1 <3><150>: Abbrev Number: 4 (DW_TAG_enumeration_type) <151> DW_AT_encoding : 7 (unsigned) <152> DW_AT_byte_size : 4 <153> DW_AT_type : <0x163> <159> DW_AT_accessibility: 1 (public) <4><15a>: Abbrev Number: 5 (DW_TAG_enumerator) <15b> DW_AT_name : val1 <15f> DW_AT_const_value : 1 <4><160>: Abbrev Number: 0 <3><161>: Abbrev Number: 0 <2><162>: Abbrev Number: 0 ... after which it finds ns::A::val1 in the expanded symtabs. Now let's consider the current trunk as is (so, with the commit present). Gdb looks for the entry ns::A::val1, but doesn't find it because the val1 entry is missing its parent: ... [29] ((cooked_index_entry *) 0x7f5240002ef0) name: val1 canonical: val1 qualified: val1 DWARF tag: DW_TAG_enumerator flags: 0x0 [] DIE offset: 0x15a parent: ((cooked_index_entry *) 0) ... Then gdb looks for the entry ns::A, and finds this entry: ... [3] ((cooked_index_entry *) 0x7f5248002ec0) name: A canonical: A qualified: ns::A DWARF tag: DW_TAG_class_type flags: 0x0 [] DIE offset: 0xdd parent: ((cooked_index_entry *) 0x7f5248002e90) [ns] ... which corresponds to this debug info, which doesn't contain val1 due to -fno-eliminate-unused-debug-types: ... <2><dd>: Abbrev Number: 3 (DW_TAG_class_type) <de> DW_AT_name : A <e0> DW_AT_byte_size : 1 <2><e3>: Abbrev Number: 0 ... Gdb expands the corresponding CU main.c, after which it doesn't find ns::A::val1 in the expanded symtabs. The root cause of the problem is the missing parent on the val1 cooked_index_entry, but this only becomes user-visible through the elaborate scenario above. Add a test-case gdb.dwarf2/enum-type-c++.exp that contains a regression test for this problem that doesn't rely on expansion state or -feliminate-unused-debug-types, but simply tests for the root cause by grepping for ns::A::val1 in the output of "maint print objfile". Tested on x86_64-linux. Approved-By: Tom Tromey <tom@tromey.com> Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=31900 (cherry picked from commit 2693187cc58db107db4255756aa5dbbe090f3b6e)
2024-09-15Automatic date update in version.inGDB Administrator1-1/+1
2024-09-14Automatic date update in version.inGDB Administrator1-1/+1
2024-09-13Automatic date update in version.inGDB Administrator1-1/+1
2024-09-12Automatic date update in version.inGDB Administrator1-1/+1
2024-09-11Automatic date update in version.inGDB Administrator1-1/+1
2024-09-10Automatic date update in version.inGDB Administrator1-1/+1
2024-09-09Automatic date update in version.inGDB Administrator1-1/+1
2024-09-08gdb-15-branch: Clear the X86_XSTATE_MPX bit in XCRO for x32H.J. Lu1-0/+6
commit 868883583e7520ff1bd99fcb224d2b33a990edff Author: Andrew Burgess <aburgess@redhat.com> Date: Sat Mar 23 16:17:36 2024 +0000 gdb/arch: assert that X86_XSTATE_MPX is not set for x32 added if (xcr0 & X86_XSTATE_MPX) { /* MPX is not available on x32. */ gdb_assert (!is_x32); regnum = create_feature_i386_64bit_mpx (tdesc.get (), regnum); } But x32 is a software convention. There is no x32 mode in hardware and CPU always returns the 64-bit mode XCR0 value for x32 processes. This regression was fixed on master branch by commit bf616be99153b43c1077be9dbb7b081b4c080031 (HEAD) Author: Andrew Burgess <aburgess@redhat.com> Date: Thu Jan 25 14:25:57 2024 +0000 gdb/gdbserver: share some code relating to target description creation which used the gdbserver code to clear the X86_XSTATE_MPX bit in XCR0 for x32. Fix this regression on gdb-15-branch by clearing the X86_XSTATE_MPX bit in XCR0 for x32 in gdb. PR gdb/32143 * x86-linux-nat.c (x86_linux_nat_target::read_description): Clear the X86_XSTATE_MPX bit in XCR0 for x32. Signed-off-by: H.J. Lu <hjl.tools@gmail.com>
2024-09-08Automatic date update in version.inGDB Administrator1-1/+1
2024-09-07Automatic date update in version.inGDB Administrator1-1/+1