Fix btrace regression

Message ID 20230301014551.2840647-1-tom@tromey.com
State Committed
Commit 8b2d5ef8d41e8da46d8b138ea7d7fe3eb5d4a221
Headers
Series Fix btrace regression |

Commit Message

Tom Tromey March 1, 2023, 1:45 a.m. UTC
  Tom de Vries pointed out that my earlier patch:

    commit 873a185be258ad2552b9579005852815b4da5baf
    Date:   Fri Dec 16 07:56:57 2022 -0700

	Don't use struct buffer in handle_qxfer_btrace

regressed gdb.btrace/reconnect.exp.  I didn't notice this because I
did not have libipt installed.

This patch fixes the bug.

Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30169
---
 gdbserver/linux-low.cc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
  

Comments

Tom de Vries March 1, 2023, 8:39 a.m. UTC | #1
On 3/1/23 02:45, Tom Tromey wrote:
> Tom de Vries pointed out that my earlier patch:
> 
>      commit 873a185be258ad2552b9579005852815b4da5baf
>      Date:   Fri Dec 16 07:56:57 2022 -0700
> 
> 	Don't use struct buffer in handle_qxfer_btrace
> 
> regressed gdb.btrace/reconnect.exp.  I didn't notice this because I
> did not have libipt installed.
> 
> This patch fixes the bug.
> 
> Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30169

Hi,

Fix LGTM.

I've also tested it, and it fixes the FAIL for me.

Thanks,
- Tom

> ---
>   gdbserver/linux-low.cc | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/gdbserver/linux-low.cc b/gdbserver/linux-low.cc
> index dec1944d45f..0ca3bb1cd6a 100644
> --- a/gdbserver/linux-low.cc
> +++ b/gdbserver/linux-low.cc
> @@ -6781,7 +6781,7 @@ linux_low_encode_raw (std::string *buffer, const gdb_byte *data,
>         elem[0] = tohex ((*data >> 4) & 0xf);
>         elem[1] = tohex (*data++ & 0xf);
>   
> -      buffer->append (elem);
> +      buffer->append (elem, 2);
>       }
>   
>     *buffer += "</raw>\n";
  

Patch

diff --git a/gdbserver/linux-low.cc b/gdbserver/linux-low.cc
index dec1944d45f..0ca3bb1cd6a 100644
--- a/gdbserver/linux-low.cc
+++ b/gdbserver/linux-low.cc
@@ -6781,7 +6781,7 @@  linux_low_encode_raw (std::string *buffer, const gdb_byte *data,
       elem[0] = tohex ((*data >> 4) & 0xf);
       elem[1] = tohex (*data++ & 0xf);
 
-      buffer->append (elem);
+      buffer->append (elem, 2);
     }
 
   *buffer += "</raw>\n";