Hi,
I tried to implement this feature myself but I found an issue releated to gdbParser code that blocked me.
The gdbParser code is very strange and very hard to understand.
To enable mixed mode in disassemble, the "-- 0" parameter should be changed to "-- 3" inside the DbgGdb::Disassemble
function. This will change the debugger output to the following:
asm_insns=[
src_and_asm_line={line="18",file="main.cpp",fullname="/home/abc/main.cpp",
line_asm_insn=[
{address="0x00000000004005e1",func-name="main()",offset="8",opcodes="64 48 8b 04 25 28 00 00 00",inst="mov %fs:0x28,%rax"},
{address="0x00000000004005ea",func-name="main()",offset="17",opcodes="48 89 45 f8",inst="mov %rax,-0x8(%rbp)"},
{address="0x00000000004005ee",func-name="main()",offset="21",opcodes="31 c0",inst="xor %eax,%eax"}]},
src_and_asm_line={line="19",file="main.cpp",fullname="/home/abc/main.cpp",
line_asm_insn=[^M
{address="0x00000000004005f0",func-name="main()",offset="23",opcodes="8b 05 de 00 00 00",inst="mov 0xde(%rip),%eax # 0x4006d4"},
{address="0x00000000004005f6",func-name="main()",offset="29",opcodes="89 45 e0",inst="mov %eax,-0x20(%rbp)"}^M
But gdbParser cannot parse this message inside the bool DbgCmdHandlerDisasseble::ProcessOutput(const wxString& line)
function:
GdbChildrenInfo info; // vector of std::map
::gdbParseListChildren(line.mb_str(wxConvUTF8).data(), info);
The gdbParseListChildren returns empty vector for above message. I tried to understand the gdbParser code but I gave up.
Do you know how to parse new message by using gdbParser? It can be easy done by writing own parser for this message but
this is not good idea.
Thank you.