This is the mail archive of the gdb-cvs@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[binutils-gdb] Get "num" as unsigned in ctf


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=eed2386e45968fa4fee8d093895f4789044fb077

commit eed2386e45968fa4fee8d093895f4789044fb077
Author: Yao Qi <yao.qi@linaro.org>
Date:   Fri Jul 22 16:31:41 2016 +0100

    Get "num" as unsigned in ctf
    
    I see the following fail due to the warning,
    
    -trace-frame-collected^M
    [warning] Extracting signed value from an unsigned int (num)^M
    ....
    FAIL: gdb.trace/mi-trace-frame-collected.exp: ctf: -trace-frame-collected
    
    In ctf metadata, "num" in "tsv" is defined as unint32_t,
    
      ctf_save_write_metadata (&writer->tcs,
    			   "event {\n\tname = \"tsv\";\n\tid = %u;\n"
    			   "\tfields := struct { \n"
    			   "\t\tuint64_t val;\n"
    			   "\t\tuint32_t num;\n"
    			   "\t};\n"
    			   "};\n", CTF_EVENT_ID_TSV);
    
    so we should read it as unsigned.  The patch below fixes the fail by
    changing to bt_ctf_get_uint64.
    
    gdb:
    
    2016-07-22  Yao Qi  <yao.qi@linaro.org>
    
    	* ctf.c (ctf_traceframe_info): Call bt_ctf_get_uint64 rather than
    	bt_ctf_get_int64.

Diff:
---
 gdb/ChangeLog | 5 +++++
 gdb/ctf.c     | 2 +-
 2 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 4a58535..f088912 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2016-07-22  Yao Qi  <yao.qi@linaro.org>
+
+	* ctf.c (ctf_traceframe_info): Call bt_ctf_get_uint64 rather than
+	bt_ctf_get_int64.
+
 2016-07-21  Tom Tromey  <tom@tromey.com>
 
 	* rust-lang.c (rust_tuple_struct_type_p): Return false for empty
diff --git a/gdb/ctf.c b/gdb/ctf.c
index 795c365..0e13cc1 100644
--- a/gdb/ctf.c
+++ b/gdb/ctf.c
@@ -1692,7 +1692,7 @@ ctf_traceframe_info (struct target_ops *self)
 	  const struct bt_definition *def;
 
 	  def = bt_ctf_get_field (event, scope, "num");
-	  vnum = (int) bt_ctf_get_int64 (def);
+	  vnum = (int) bt_ctf_get_uint64 (def);
 	  VEC_safe_push (int, info->tvars, vnum);
 	}
       else


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]