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

Carl Love cel@us.ibm.com
Thu Jul 6 15:07:42 GMT 2023


GDB maintainers:

I believe Simon is on parental leave now.  He mentioned in a private
email before he sent the last set of comments that he was expecting to
go on parental leave shortly.

Just wondering if anyone else would be willing to take a look at my
feedback on his questions and changes per his comments to see if we can
move these two patches forward.  Thanks

                       Carl 
-------------------------------------------

On Fri, 2023-06-23 at 13:04 -0700, Carl Love wrote:
> Simon, GDB maintainers:
> 
> Version 2, updated the compiler check and handling for gcc version 6
> and earlier.  Retested on Power 10.
> 
> 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 | 34 ++++++++++++++++++++++++++++++++++
>  1 file changed, 34 insertions(+)
> 
> diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp
> index aed7e2d043c..5857c59a47a 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,38 @@ proc gdb_compile {source dest type options} {
>              } else {
>                  error "Don't know how to handle text_segment
> option."
>              }
> +	} elseif { $opt == "column-info" } {
> +	    # If GCC or clang does not support column-info, compilation
> +	    # will fail and the usupported column-info option will be
> +	    # reported as such.
> +	    if {[test_compiler_info {gcc-*}]} {
> +		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."
> +	    }
> +
> +	} elseif { $opt == "no-column-info" } {
> +	    if {[test_compiler_info {gcc-*}]} {
> +		if {[test_compiler_info {gcc-[1-6]-*}]} {
> +		    # In this case, don't add the compile line option
> and
> +		    # the result will be the same as using no-column-
> info
> +		    # on a version that supports the option.
> +		    warning "gdb_compile option no-column-info not
> supported, ignoring."
> +		} else {
> +		    lappend new_options "additional_flags=-gno-column-
> info"
> +		}
> +
> +	    } elseif {[test_compiler_info {clang-*}]} {
> +		lappend new_options "additional_flags=-gno-column-info"
> +
> +	    } else {
> +		error "Don't know how to handle gno-column-info
> option."
> +	    }
> +
>          } else {
>              lappend new_options $opt
>          }



More information about the Gdb-patches mailing list