Re: [PATCH 1/2] Fix reverse stepping multiple contiguous PC ranges over the line table.

Simon Marchi via Gdb-patches
2023-06-19T17:12:10Z

On 5/16/23 18:54, Carl Love wrote:
> Simon, GDB maintainers:
>
> Per the comments on version 4 for the gdb.reverse/func-map-to-same-
> line.exp, I have added support to proc gdb_compile to enable or disable
> generating line information as part of the debug information. The two
> new options are column-info and no-column-info.
>
> This patch implements the new options for gdb_compile.
>
> These options have been tested with patch 2 of 2 on PowerPC with the
> GCC and clang compilers.
>
> Please let me know if the patch is acceptable for mainline. Thanks.
>
> Carl
>
> -------------------------------------------------------------
>
> Add gdb_compile options column-info and no-column-info
>
> This patch adds two new options to gdb_compile to specify if the compile
> should or should not generate the line table information. The
> options are supported on clang and gcc version 7 and newer.
>
> Patch has been tested on PowerPC with both gcc and clang.
> ---
> gdb/testsuite/lib/gdb.exp | 30 ++++++++++++++++++++++++++++++
> 1 file changed, 30 insertions(+)
>
> diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp
> index aed7e2d043c..e993fddf4c7 100644
> --- a/gdb/testsuite/lib/gdb.exp
> +++ b/gdb/testsuite/lib/gdb.exp
> @@ -4794,6 +4794,8 @@ proc quote_for_host { args } {
> # debug information
> # - text_segment=addr: Tell the linker to place the text segment at ADDR.
> # - build-id: Ensure the final binary includes a build-id.
> +# - no-column-info: Disable generation of column table information.
> +# - column-info: Enable generation of column table information.
> #
> # And here are some of the not too obscure options understood by DejaGnu that
> # influence the compilation:
> @@ -5003,6 +5005,34 @@ proc gdb_compile {source dest type options} {
> } else {
> error "Don't know how to handle text_segment option."
> }
> + } elseif { $opt == "column-info" } {
> + if {[test_compiler_info {gcc-*}]} {
> + if {[test_compiler_info {gcc-[1-6]-*}]} {
> + error "gdb_compile option no-column-info not supported."

I think this path should return the equivalent of "failed to compile",
instead of throwing an error. Control will go back to the test, which
will generally skip the portion of the test that requires that
binary.

> + }
> + lappend new_options "additional_flags=-gcolumn-info"
> +
> + } elseif {[test_compiler_info {clang-*}]} {
> + lappend new_options "additional_flags=-gcolumn-info"
> +
> + } else {
> + error "Don't know how to handle gcolumn-info option."

I think it's ok to throw an error in this path. If you are testing
against a compiler that we don't know about, it will produce errors that
are easy to spot, and you'll be able to add support for your compiler
here.

Simon