summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVladimir Mezentsev <vladimir.mezentsev@oracle.com>2022-04-07 00:15:55 -0700
committerVladimir Mezentsev <vladimir.mezentsev@oracle.com>2022-04-08 09:05:37 -0700
commit9f184a64f51b00fd5c208c8528f6a553f5b27c1c (patch)
tree22d9d066e450307b42f740529d3fc6df3dcaee08
parentc10622fef4660111a53f4ccbd7b336dbdd7971ab (diff)
downloadbinutils-gdb-9f184a64f51b00fd5c208c8528f6a553f5b27c1c.tar.gz
gprofng: fprintf_styled_func not inizialized for disassembler
gprofng/ChangeLog 2022-04-07 Vladimir Mezentsev <vladimir.mezentsev@oracle.com> * libcollector/unwind.c: inizialize fprintf_styled_func. * src/Disasm.cc: Likewise.
-rw-r--r--gprofng/libcollector/unwind.c9
-rw-r--r--gprofng/src/Disasm.cc16
2 files changed, 25 insertions, 0 deletions
diff --git a/gprofng/libcollector/unwind.c b/gprofng/libcollector/unwind.c
index ffb06f938f3..f309c54bd33 100644
--- a/gprofng/libcollector/unwind.c
+++ b/gprofng/libcollector/unwind.c
@@ -120,6 +120,14 @@ fprintf_func (void *arg ATTRIBUTE_UNUSED, const char *fmt ATTRIBUTE_UNUSED, ...)
return 0;
}
+static int
+fprintf_styled_func (void *arg ATTRIBUTE_UNUSED,
+ enum disassembler_style st ATTRIBUTE_UNUSED,
+ const char *fmt ATTRIBUTE_UNUSED, ...)
+{
+ return 0;
+}
+
/* Get LENGTH bytes from info's buffer, at target address memaddr.
Transfer them to myaddr. */
static int
@@ -4347,6 +4355,7 @@ parse_x86_AVX_instruction (unsigned char *pc)
dis_info.octets_per_byte = 1;
dis_info.disassembler_needs_relocs = FALSE;
dis_info.fprintf_func = fprintf_func;
+ dis_info.fprintf_styled_func = fprintf_styled_func;
dis_info.stream = NULL;
dis_info.disassembler_options = NULL;
dis_info.read_memory_func = read_memory_func;
diff --git a/gprofng/src/Disasm.cc b/gprofng/src/Disasm.cc
index 0fec9c3c76a..a5cca13950f 100644
--- a/gprofng/src/Disasm.cc
+++ b/gprofng/src/Disasm.cc
@@ -88,6 +88,21 @@ fprintf_func (void *arg, const char *fmt, ...)
return cnt;
}
+static int
+fprintf_styled_func (void *arg, enum disassembler_style st ATTRIBUTE_UNUSED,
+ const char *fmt, ...)
+{
+ char buf[512];
+ va_list vp;
+ va_start (vp, fmt);
+ int cnt = vsnprintf (buf, sizeof (buf), fmt, vp);
+ va_end (vp);
+
+ Disasm *dis = (Disasm *) arg;
+ dis->dis_str->append (buf);
+ return cnt;
+}
+
/* Get LENGTH bytes from info's buffer, at target address memaddr.
Transfer them to myaddr. */
static int
@@ -165,6 +180,7 @@ Disasm::disasm_open ()
dis_info.octets_per_byte = 1;
dis_info.disassembler_needs_relocs = FALSE;
dis_info.fprintf_func = fprintf_func;
+ dis_info.fprintf_styled_func = fprintf_styled_func;
dis_info.stream = this;
dis_info.disassembler_options = NULL;
dis_info.read_memory_func = read_memory_func;