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.
This commit is contained in:
Vladimir Mezentsev 2022-04-07 00:15:55 -07:00
parent c10622fef4
commit 9f184a64f5
2 changed files with 25 additions and 0 deletions

View File

@ -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;

View File

@ -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;