Re: [PATCHv3 1/7] gdb: improve line number lookup around inline functions

Andrew Burgess
2025-12-18T14:47:17Z

Tom de Vries <tdevries@suse.de> writes:

> On 12/17/25 3:32 PM, Andrew Burgess wrote:
>> Tom Tromey <tom@tromey.com> writes:
>>
>>>>>>>> "Andrew" == Andrew Burgess <aburgess@redhat.com> writes:
>>>
>>> Andrew> So my proposal is that the backward scan of the line table looking for
>>> Andrew> an is-stmt entry should not be performed when NOTCURRENT is true. In
>>> Andrew> the case above this means we will report the entry at index 9, which
>>> Andrew> is for line 10, which is correct.
>>>
>>> Thanks for the explanation. It all made sense to me.
>>>
>>> Andrew> + if ![runto foo] {
>>>
>>> We're bracing if conditions these days.
>>>
>>> Otherwise this looks good to me.
>>>
>>> Approved-By: Tom Tromey <tom@tromey.com>
>>
>> I fixed the TCL bracing issue and pushed just this patch for now. I'm
>> taking a deeper look at some of the questions you raised on the later
>> patches.
>
> Hi,
>
> I'm getting:
> ...
> $ pre-commit run --all-files
> black....................................................................Passed
> flake8...................................................................Passed
> isort....................................................................Passed
> codespell................................................................Passed
> check-include-guards.....................................................Passed
> check-gnu-style..........................................................Passed
> - hook id: check-gnu-style
> - duration: 0.19s
> check-whitespace.........................................................Passed
> pre-commit-setup.........................................................Passed
> tclint...................................................................Failed
> - hook id: tclint
> - exit code: 1
>
> gdb/testsuite/gdb.dwarf2/dw2-inline-bt.exp:211:26: expression with
> substitutions should be enclosed by braces [unbraced-expr]
> gdb/testsuite/gdb.dwarf2/dw2-inline-bt.exp:212:26: expression with
> substitutions should be enclosed by braces [unbraced-expr]

Sorry for the breakage. I pushed the patch below to address this.

Thanks,
Andrew

--

commit e3b02794ca17af6c12780ba32cb38c98e152a903
Author: Andrew Burgess <aburgess@redhat.com>
Date: Thu Dec 18 13:30:38 2025 +0000

gdb/testsuite: fix tclint errors

After commit:

commit b5160e2ee6a0192389caf7acee1fc32961ed29f4 (upstream/master, upstream/HEAD, gdb-tmp-g)
Date: Fri Jul 26 16:32:33 2024 +0100

gdb: improve line number lookup around inline functions

the following tclint errors were reported:

gdb/testsuite/gdb.dwarf2/dw2-inline-bt.exp:211:26: expression with substitutions should be enclosed by braces [unbraced-expr]
gdb/testsuite/gdb.dwarf2/dw2-inline-bt.exp:212:26: expression with substitutions should be enclosed by braces [unbraced-expr]

Fixed by this commit.

diff --git a/gdb/testsuite/gdb.dwarf2/dw2-inline-bt.exp b/gdb/testsuite/gdb.dwarf2/dw2-inline-bt.exp
index cf66897cd70..77a18918eb1 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-inline-bt.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-inline-bt.exp
@@ -208,8 +208,8 @@ proc do_test { } {
# is reported. We might get different line numbers depending on
# how the architectures skip prologue function works. This test
# is all about how frame #1 is reported.
- set foo_body_1 [expr $::foo_prologue + 1]
- set foo_body_2 [expr $::foo_prologue + 2]
+ set foo_body_1 [expr {$::foo_prologue + 1}]
+ set foo_body_2 [expr {$::foo_prologue + 2}]
gdb_test "bt" \
[multi_line \
"^#0\\s+foo \\(\\) at \[^\r\n\]+$::srcfile:(?:$::foo_prologue|$foo_body_1|$foo_body_2)" \