diff options
author | Vladimir Mezentsev <vladimir.mezentsev@oracle.com> | 2022-04-07 00:15:55 -0700 |
---|---|---|
committer | Vladimir Mezentsev <vladimir.mezentsev@oracle.com> | 2022-04-08 09:05:37 -0700 |
commit | 9f184a64f51b00fd5c208c8528f6a553f5b27c1c (patch) | |
tree | 22d9d066e450307b42f740529d3fc6df3dcaee08 | |
parent | c10622fef4660111a53f4ccbd7b336dbdd7971ab (diff) | |
download | gdb-9f184a64f51b00fd5c208c8528f6a553f5b27c1c.zip gdb-9f184a64f51b00fd5c208c8528f6a553f5b27c1c.tar.gz gdb-9f184a64f51b00fd5c208c8528f6a553f5b27c1c.tar.bz2 |
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.c | 9 | ||||
-rw-r--r-- | gprofng/src/Disasm.cc | 16 |
2 files changed, 25 insertions, 0 deletions
diff --git a/gprofng/libcollector/unwind.c b/gprofng/libcollector/unwind.c index ffb06f9..f309c54 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 0fec9c3..a5cca13 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; |