-
Notifications
You must be signed in to change notification settings - Fork 225
Add support for Disassembly Source for GDB #1237
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
47c32b4 to
31f3dac
Compare
Do you understand this condition? I would have thought it would be Refers to: src/MIDebugEngine/AD7.Impl/AD7Disassembly.cs:122 in d63c422. [](commit_id = d63c422, deletion_comment = False) |
Need to handle skipping the first instruction in this path. Refers to: src/MIDebugEngine/AD7.Impl/AD7Disassembly.cs:125 in d63c422. [](commit_id = d63c422, deletion_comment = False) |
| for (iOp = 0; _addr < instructions.First().Addr; _addr++, iOp++) | ||
| { | ||
| prgDisassembly[iOp] = FetchBadInstruction(dwFields); | ||
| } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You need a similar change here
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It seems like we could probably combine the two code paths together.
| // If we have a new line and the current line is greater than the previously seen source line. | ||
| // Try to grab the last seen source line + 1 and show a group of source code. | ||
| // Else, just show the single line. | ||
| uint startLine = isNewLine && currentLine > _dwLastSourceLine ? _dwLastSourceLine + 1 : currentLine; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| uint startLine = isNewLine && currentLine > _dwLastSourceLine ? _dwLastSourceLine + 1 : currentLine; | |
| uint startLine = isNewLine && !isNewDocument && currentLine > _dwLastSourceLine ? _dwLastSourceLine + 1 : currentLine; |
This PR adds Location and Line to Disassembly Response.
2f7a529 to
b7870f5
Compare
|
Based on godbolt, it looks like lines out of order is intended. |
|
If it is alright, I can do a Pull Request for interleaving source in assembly. I had to do it for my own debugger and made similar changes to AD7. There are some unexpected gotchas in the parsing of the gdb MI results for mixed source/asm. My changes are on https://github.com/haneefdm/MIEngine Will work with gdb version 8+ (Jun 4 2017) where they revamped (and deprecated) some of the ways disassembly is produced. |
|
I can't do a PR for MIEngine with this PR being outstanding. I looked at the files in this PR. There are a couple of things jump out at me. My changes are much simpler and not sure we have to worry about source lines being in order, etc. One thing missing (and should be fixed) in my changes however are calls to ConvertDebuggerLineToClient and ConvertDebuggerColumnToClient My own debugger is here https://github.com/Marus/cortex-debug/blob/master/src/backend/disasm.ts I have two disassemblers in there and hoping to get rid of the old one and replace it with the new DAP protocol version so it can work nicely with the VSCode debug infrastructure. |
|
@haneefdm One issue that came up with this feature was when requesting address ranges outside of the user's space or a huge size request, GDB would return with no source information, which required us to find each range per symbol and re-request disassembly from GDB. It seemed like GDB would only return source information if it actually had matching symbol information, but at any point if it was missing, it would remove it from the whole data-disassemble response. |
| */ | ||
| foreach (TupleValue src_and_asm_line in src_and_asm_lines) | ||
| { | ||
| uint line = src_and_asm_line.FindUint("line"); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Watch out, this can fail (Exception) because "line" can be missing. When "line" is missing so will the "file" or "filename". I did it backwards. First I check for the file and if it exists and the line exists, then I call FindUnit("line"). It happens when a few instructions have source info but a few don't in the same addr-rane. If all don't have source-info, then there will be no src_and_asm_line either. My code looks like.
string file = process.GetMappedFileFromTuple(item);
uint line = !String.IsNullOrEmpty(file) && item.Contains("line") ? item.FindUint("line") : 0;There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Oh, I see you are disassembling twice. I did not find that necessary, but you may have seen things I haven't. You can ignore my previous comment but I would still guard against not having file/source info in the middle of normal looking stuff.
|
From what I saw, the request for source info (mode 4 or 5) degenerates into a request of request for mode 2. At least, the results will look like that. This just baffled me at first. This happens especially with bad/unknown memory regions and happened even within a proper memory region when source information was missing. Yup, address ranges are a big problem. I am still experimenting with this, btw. I am reading gdb source code to confirm what I guessed -- lot left to read though. Also want to see what Ecliipse does. Here is what I plan to do in the short term for my debugger
The following does not work for native programs because technically the entire memory is the same and super large. So, no regions are defined. The above is what is possible even if very little is used (actual boundaries). For the same executable, using objdump, I get the following which is what this executable is using. In your case, you won't know which memory region got mapped to which virtual one. |

This PR adds Location and Line to Disassembly Response.
CTRL+F
main.cppforSourceandLinefilled out.Example Response:
Disassemble Response
{ "type": "response", "request_seq": 12, "success": true, "command": "disassemble", "body": { "instructions": [ { "address": "0x00000000080010f0", "instructionBytes": "f3 0f 1e fa", "instruction": "endbr64 ", "symbol": "" }, { "address": "0x00000000080010f4", "instructionBytes": "68 0c 00 00 00", "instruction": "push 0xc", "symbol": "" }, { "address": "0x00000000080010f9", "instructionBytes": "f2 e9 21 ff ff ff", "instruction": "bnd jmp 0x8001020", "symbol": "" }, { "address": "0x00000000080010ff", "instructionBytes": "90", "instruction": "nop", "symbol": "" }, { "address": "0x0000000008001100", "instructionBytes": "f3 0f 1e fa", "instruction": "endbr64 ", "symbol": "" }, { "address": "0x0000000008001104", "instructionBytes": "68 0d 00 00 00", "instruction": "push 0xd", "symbol": "" }, { "address": "0x0000000008001109", "instructionBytes": "f2 e9 11 ff ff ff", "instruction": "bnd jmp 0x8001020", "symbol": "" }, { "address": "0x000000000800110f", "instructionBytes": "90", "instruction": "nop", "symbol": "" }, { "address": "0x0000000008001110", "instructionBytes": "f3 0f 1e fa", "instruction": "endbr64 ", "symbol": "" }, { "address": "0x0000000008001114", "instructionBytes": "68 0e 00 00 00", "instruction": "push 0xe", "symbol": "" }, { "address": "0x0000000008001119", "instructionBytes": "f2 e9 01 ff ff ff", "instruction": "bnd jmp 0x8001020", "symbol": "" }, { "address": "0x000000000800111f", "instructionBytes": "90", "instruction": "nop", "symbol": "" }, { "address": "0x0000000008001120", "instructionBytes": "f3 0f 1e fa", "instruction": "endbr64 ", "symbol": "" }, { "address": "0x0000000008001124", "instructionBytes": "68 0f 00 00 00", "instruction": "push 0xf", "symbol": "" }, { "address": "0x0000000008001129", "instructionBytes": "f2 e9 f1 fe ff ff", "instruction": "bnd jmp 0x8001020", "symbol": "" }, { "address": "0x000000000800112f", "instructionBytes": "90", "instruction": "nop", "symbol": "" }, { "address": "0x0000000008001130", "instructionBytes": "f3 0f 1e fa", "instruction": "endbr64 ", "symbol": "" }, { "address": "0x0000000008001134", "instructionBytes": "68 10 00 00 00", "instruction": "push 0x10", "symbol": "" }, { "address": "0x0000000008001139", "instructionBytes": "f2 e9 e1 fe ff ff", "instruction": "bnd jmp 0x8001020", "symbol": "" }, { "address": "0x000000000800113f", "instructionBytes": "90", "instruction": "nop", "symbol": "" }, { "address": "0x0000000008001140", "instructionBytes": "f3 0f 1e fa", "instruction": "endbr64 ", "symbol": "__cxa_finalize@plt" }, { "address": "0x0000000008001144", "instructionBytes": "f2 ff 25 85 5e 00 00", "instruction": "bnd jmp QWORD PTR [rip+0x5e85] # 0x8006fd0" }, { "address": "0x000000000800114b", "instructionBytes": "0f 1f 44 00 00", "instruction": "nop DWORD PTR [rax+rax*1+0x0]" }, { "address": "0x0000000008001150", "instructionBytes": "f3 0f 1e fa", "instruction": "endbr64 ", "symbol": "_ZSt11_Hash_bytesPKvmm@plt" }, { "address": "0x0000000008001154", "instructionBytes": "f2 ff 25 ed 5d 00 00", "instruction": "bnd jmp QWORD PTR [rip+0x5ded] # 0x8006f48 <_ZSt11_Hash_bytesPKvmm@got.plt>" }, { "address": "0x000000000800115b", "instructionBytes": "0f 1f 44 00 00", "instruction": "nop DWORD PTR [rax+rax*1+0x0]" }, { "address": "0x0000000008001160", "instructionBytes": "f3 0f 1e fa", "instruction": "endbr64 ", "symbol": "_ZSt17__throw_bad_allocv@plt" }, { "address": "0x0000000008001164", "instructionBytes": "f2 ff 25 e5 5d 00 00", "instruction": "bnd jmp QWORD PTR [rip+0x5de5] # 0x8006f50 <_ZSt17__throw_bad_allocv@got.plt>" }, { "address": "0x000000000800116b", "instructionBytes": "0f 1f 44 00 00", "instruction": "nop DWORD PTR [rax+rax*1+0x0]" }, { "address": "0x0000000008001170", "instructionBytes": "f3 0f 1e fa", "instruction": "endbr64 ", "symbol": "__cxa_begin_catch@plt" }, { "address": "0x0000000008001174", "instructionBytes": "f2 ff 25 dd 5d 00 00", "instruction": "bnd jmp QWORD PTR [rip+0x5ddd] # 0x8006f58 <__cxa_begin_catch@got.plt>" }, { "address": "0x000000000800117b", "instructionBytes": "0f 1f 44 00 00", "instruction": "nop DWORD PTR [rax+rax*1+0x0]" }, { "address": "0x0000000008001180", "instructionBytes": "f3 0f 1e fa", "instruction": "endbr64 ", "symbol": "memset@plt" }, { "address": "0x0000000008001184", "instructionBytes": "f2 ff 25 d5 5d 00 00", "instruction": "bnd jmp QWORD PTR [rip+0x5dd5] # 0x8006f60 <memset@got.plt>" }, { "address": "0x000000000800118b", "instructionBytes": "0f 1f 44 00 00", "instruction": "nop DWORD PTR [rax+rax*1+0x0]" }, { "address": "0x0000000008001190", "instructionBytes": "f3 0f 1e fa", "instruction": "endbr64 ", "symbol": "_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev@plt" }, { "address": "0x0000000008001194", "instructionBytes": "f2 ff 25 cd 5d 00 00", "instruction": "bnd jmp QWORD PTR [rip+0x5dcd] # 0x8006f68 <_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev@got.plt>" }, { "address": "0x000000000800119b", "instructionBytes": "0f 1f 44 00 00", "instruction": "nop DWORD PTR [rax+rax*1+0x0]" }, { "address": "0x00000000080011a0", "instructionBytes": "f3 0f 1e fa", "instruction": "endbr64 ", "symbol": "_ZNKSt8__detail20_Prime_rehash_policy11_M_next_bktEm@plt" }, { "address": "0x00000000080011a4", "instructionBytes": "f2 ff 25 c5 5d 00 00", "instruction": "bnd jmp QWORD PTR [rip+0x5dc5] # 0x8006f70 <_ZNKSt8__detail20_Prime_rehash_policy11_M_next_bktEm@got.plt>" }, { "address": "0x00000000080011ab", "instructionBytes": "0f 1f 44 00 00", "instruction": "nop DWORD PTR [rax+rax*1+0x0]" }, { "address": "0x00000000080011b0", "instructionBytes": "f3 0f 1e fa", "instruction": "endbr64 ", "symbol": "_ZdlPv@plt" }, { "address": "0x00000000080011b4", "instructionBytes": "f2 ff 25 bd 5d 00 00", "instruction": "bnd jmp QWORD PTR [rip+0x5dbd] # 0x8006f78 <_ZdlPv@got.plt>" }, { "address": "0x00000000080011bb", "instructionBytes": "0f 1f 44 00 00", "instruction": "nop DWORD PTR [rax+rax*1+0x0]" }, { "address": "0x00000000080011c0", "instructionBytes": "f3 0f 1e fa", "instruction": "endbr64 ", "symbol": "_Znwm@plt" }, { "address": "0x00000000080011c4", "instructionBytes": "f2 ff 25 b5 5d 00 00", "instruction": "bnd jmp QWORD PTR [rip+0x5db5] # 0x8006f80 <_Znwm@got.plt>" }, { "address": "0x00000000080011cb", "instructionBytes": "0f 1f 44 00 00", "instruction": "nop DWORD PTR [rax+rax*1+0x0]" }, { "address": "0x00000000080011d0", "instructionBytes": "f3 0f 1e fa", "instruction": "endbr64 ", "symbol": "_ZNSaIcED1Ev@plt" }, { "address": "0x00000000080011d4", "instructionBytes": "f2 ff 25 ad 5d 00 00", "instruction": "bnd jmp QWORD PTR [rip+0x5dad] # 0x8006f88 <_ZNSaIcED1Ev@got.plt>" }, { "address": "0x00000000080011db", "instructionBytes": "0f 1f 44 00 00", "instruction": "nop DWORD PTR [rax+rax*1+0x0]" }, { "address": "0x00000000080011e0", "instructionBytes": "f3 0f 1e fa", "instruction": "endbr64 ", "symbol": "__stack_chk_fail@plt" }, { "address": "0x00000000080011e4", "instructionBytes": "f2 ff 25 a5 5d 00 00", "instruction": "bnd jmp QWORD PTR [rip+0x5da5] # 0x8006f90 <__stack_chk_fail@got.plt>" }, { "address": "0x00000000080011eb", "instructionBytes": "0f 1f 44 00 00", "instruction": "nop DWORD PTR [rax+rax*1+0x0]" }, { "address": "0x00000000080011f0", "instructionBytes": "f3 0f 1e fa", "instruction": "endbr64 ", "symbol": "_ZNKSt8__detail20_Prime_rehash_policy14_M_need_rehashEmmm@plt" }, { "address": "0x00000000080011f4", "instructionBytes": "f2 ff 25 9d 5d 00 00", "instruction": "bnd jmp QWORD PTR [rip+0x5d9d] # 0x8006f98 <_ZNKSt8__detail20_Prime_rehash_policy14_M_need_rehashEmmm@got.plt>" }, { "address": "0x00000000080011fb", "instructionBytes": "0f 1f 44 00 00", "instruction": "nop DWORD PTR [rax+rax*1+0x0]" }, { "address": "0x0000000008001200", "instructionBytes": "f3 0f 1e fa", "instruction": "endbr64 ", "symbol": "_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_@plt" }, { "address": "0x0000000008001204", "instructionBytes": "f2 ff 25 95 5d 00 00", "instruction": "bnd jmp QWORD PTR [rip+0x5d95] # 0x8006fa0 <_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_@got.plt>" }, { "address": "0x000000000800120b", "instructionBytes": "0f 1f 44 00 00", "instruction": "nop DWORD PTR [rax+rax*1+0x0]" }, { "address": "0x0000000008001210", "instructionBytes": "f3 0f 1e fa", "instruction": "endbr64 ", "symbol": "strcmp@plt" }, { "address": "0x0000000008001214", "instructionBytes": "f2 ff 25 8d 5d 00 00", "instruction": "bnd jmp QWORD PTR [rip+0x5d8d] # 0x8006fa8 <strcmp@got.plt>" }, { "address": "0x000000000800121b", "instructionBytes": "0f 1f 44 00 00", "instruction": "nop DWORD PTR [rax+rax*1+0x0]" }, { "address": "0x0000000008001220", "instructionBytes": "f3 0f 1e fa", "instruction": "endbr64 ", "symbol": "__cxa_rethrow@plt" }, { "address": "0x0000000008001224", "instructionBytes": "f2 ff 25 85 5d 00 00", "instruction": "bnd jmp QWORD PTR [rip+0x5d85] # 0x8006fb0 <__cxa_rethrow@got.plt>" }, { "address": "0x000000000800122b", "instructionBytes": "0f 1f 44 00 00", "instruction": "nop DWORD PTR [rax+rax*1+0x0]" }, { "address": "0x0000000008001230", "instructionBytes": "f3 0f 1e fa", "instruction": "endbr64 ", "symbol": "__cxa_end_catch@plt" }, { "address": "0x0000000008001234", "instructionBytes": "f2 ff 25 7d 5d 00 00", "instruction": "bnd jmp QWORD PTR [rip+0x5d7d] # 0x8006fb8 <__cxa_end_catch@got.plt>" }, { "address": "0x000000000800123b", "instructionBytes": "0f 1f 44 00 00", "instruction": "nop DWORD PTR [rax+rax*1+0x0]" }, { "address": "0x0000000008001240", "instructionBytes": "f3 0f 1e fa", "instruction": "endbr64 ", "symbol": "_Unwind_Resume@plt" }, { "address": "0x0000000008001244", "instructionBytes": "f2 ff 25 75 5d 00 00", "instruction": "bnd jmp QWORD PTR [rip+0x5d75] # 0x8006fc0 <_Unwind_Resume@got.plt>" }, { "address": "0x000000000800124b", "instructionBytes": "0f 1f 44 00 00", "instruction": "nop DWORD PTR [rax+rax*1+0x0]" }, { "address": "0x0000000008001250", "instructionBytes": "f3 0f 1e fa", "instruction": "endbr64 ", "symbol": "_ZNSaIcEC1Ev@plt" }, { "address": "0x0000000008001254", "instructionBytes": "f2 ff 25 6d 5d 00 00", "instruction": "bnd jmp QWORD PTR [rip+0x5d6d] # 0x8006fc8 <_ZNSaIcEC1Ev@got.plt>" }, { "address": "0x000000000800125b", "instructionBytes": "0f 1f 44 00 00", "instruction": "nop DWORD PTR [rax+rax*1+0x0]" }, { "address": "0x0000000008001260", "instructionBytes": "f3 0f 1e fa", "instruction": "endbr64 ", "symbol": "_start" }, { "address": "0x0000000008001264", "instructionBytes": "31 ed", "instruction": "xor ebp,ebp" }, { "address": "0x0000000008001266", "instructionBytes": "49 89 d1", "instruction": "mov r9,rdx" }, { "address": "0x0000000008001269", "instructionBytes": "5e", "instruction": "pop rsi" }, { "address": "0x000000000800126a", "instructionBytes": "48 89 e2", "instruction": "mov rdx,rsp" }, { "address": "0x000000000800126d", "instructionBytes": "48 83 e4 f0", "instruction": "and rsp,0xfffffffffffffff0" }, { "address": "0x0000000008001271", "instructionBytes": "50", "instruction": "push rax" }, { "address": "0x0000000008001272", "instructionBytes": "54", "instruction": "push rsp" }, { "address": "0x0000000008001273", "instructionBytes": "4c 8d 05 46 26 00 00", "instruction": "lea r8,[rip+0x2646] # 0x80038c0 <__libc_csu_fini>" }, { "address": "0x000000000800127a", "instructionBytes": "48 8d 0d cf 25 00 00", "instruction": "lea rcx,[rip+0x25cf] # 0x8003850 <__libc_csu_init>" }, { "address": "0x0000000008001281", "instructionBytes": "48 8d 3d c1 00 00 00", "instruction": "lea rdi,[rip+0xc1] # 0x8001349 <main(int, char**)>" }, { "address": "0x0000000008001288", "instructionBytes": "ff 15 52 5d 00 00", "instruction": "call QWORD PTR [rip+0x5d52] # 0x8006fe0" }, { "address": "0x000000000800128e", "instructionBytes": "f4", "instruction": "hlt " }, { "address": "0x000000000800128f", "instructionBytes": "90", "instruction": "nop", "symbol": "" }, { "address": "0x0000000008001290", "instructionBytes": "48 8d 3d 81 5d 00 00", "instruction": "lea rdi,[rip+0x5d81] # 0x8007018 <completed.8059>", "symbol": "deregister_tm_clones" }, { "address": "0x0000000008001297", "instructionBytes": "48 8d 05 7a 5d 00 00", "instruction": "lea rax,[rip+0x5d7a] # 0x8007018 <completed.8059>" }, { "address": "0x000000000800129e", "instructionBytes": "48 39 f8", "instruction": "cmp rax,rdi" }, { "address": "0x00000000080012a1", "instructionBytes": "74 15", "instruction": "je 0x80012b8 <deregister_tm_clones+40>" }, { "address": "0x00000000080012a3", "instructionBytes": "48 8b 05 2e 5d 00 00", "instruction": "mov rax,QWORD PTR [rip+0x5d2e] # 0x8006fd8" }, { "address": "0x00000000080012aa", "instructionBytes": "48 85 c0", "instruction": "test rax,rax" }, { "address": "0x00000000080012ad", "instructionBytes": "74 09", "instruction": "je 0x80012b8 <deregister_tm_clones+40>" }, { "address": "0x00000000080012af", "instructionBytes": "ff e0", "instruction": "jmp rax" }, { "address": "0x00000000080012b1", "instructionBytes": "0f 1f 80 00 00 00 00", "instruction": "nop DWORD PTR [rax+0x0]" }, { "address": "0x00000000080012b8", "instructionBytes": "c3", "instruction": "ret " }, { "address": "0x00000000080012b9", "instructionBytes": "0f 1f 80 00 00 00 00", "instruction": "nop DWORD PTR [rax+0x0]" }, { "address": "0x00000000080012c0", "instructionBytes": "48 8d 3d 51 5d 00 00", "instruction": "lea rdi,[rip+0x5d51] # 0x8007018 <completed.8059>", "symbol": "register_tm_clones" }, { "address": "0x00000000080012c7", "instructionBytes": "48 8d 35 4a 5d 00 00", "instruction": "lea rsi,[rip+0x5d4a] # 0x8007018 <completed.8059>" }, { "address": "0x00000000080012ce", "instructionBytes": "48 29 fe", "instruction": "sub rsi,rdi" }, { "address": "0x00000000080012d1", "instructionBytes": "48 89 f0", "instruction": "mov rax,rsi" }, { "address": "0x00000000080012d4", "instructionBytes": "48 c1 ee 3f", "instruction": "shr rsi,0x3f" }, { "address": "0x00000000080012d8", "instructionBytes": "48 c1 f8 03", "instruction": "sar rax,0x3" }, { "address": "0x00000000080012dc", "instructionBytes": "48 01 c6", "instruction": "add rsi,rax" }, { "address": "0x00000000080012df", "instructionBytes": "48 d1 fe", "instruction": "sar rsi,1" }, { "address": "0x00000000080012e2", "instructionBytes": "74 14", "instruction": "je 0x80012f8 <register_tm_clones+56>" }, { "address": "0x00000000080012e4", "instructionBytes": "48 8b 05 05 5d 00 00", "instruction": "mov rax,QWORD PTR [rip+0x5d05] # 0x8006ff0" }, { "address": "0x00000000080012eb", "instructionBytes": "48 85 c0", "instruction": "test rax,rax" }, { "address": "0x00000000080012ee", "instructionBytes": "74 08", "instruction": "je 0x80012f8 <register_tm_clones+56>" }, { "address": "0x00000000080012f0", "instructionBytes": "ff e0", "instruction": "jmp rax" }, { "address": "0x00000000080012f2", "instructionBytes": "66 0f 1f 44 00 00", "instruction": "nop WORD PTR [rax+rax*1+0x0]" }, { "address": "0x00000000080012f8", "instructionBytes": "c3", "instruction": "ret " }, { "address": "0x00000000080012f9", "instructionBytes": "0f 1f 80 00 00 00 00", "instruction": "nop DWORD PTR [rax+0x0]" }, { "address": "0x0000000008001300", "instructionBytes": "f3 0f 1e fa", "instruction": "endbr64 ", "symbol": "__do_global_dtors_aux" }, { "address": "0x0000000008001304", "instructionBytes": "80 3d 0d 5d 00 00 00", "instruction": "cmp BYTE PTR [rip+0x5d0d],0x0 # 0x8007018 <completed.8059>" }, { "address": "0x000000000800130b", "instructionBytes": "75 2b", "instruction": "jne 0x8001338 <__do_global_dtors_aux+56>" }, { "address": "0x000000000800130d", "instructionBytes": "55", "instruction": "push rbp" }, { "address": "0x000000000800130e", "instructionBytes": "48 83 3d ba 5c 00 00 00", "instruction": "cmp QWORD PTR [rip+0x5cba],0x0 # 0x8006fd0" }, { "address": "0x0000000008001316", "instructionBytes": "48 89 e5", "instruction": "mov rbp,rsp" }, { "address": "0x0000000008001319", "instructionBytes": "74 0c", "instruction": "je 0x8001327 <__do_global_dtors_aux+39>" }, { "address": "0x000000000800131b", "instructionBytes": "48 8b 3d e6 5c 00 00", "instruction": "mov rdi,QWORD PTR [rip+0x5ce6] # 0x8007008" }, { "address": "0x0000000008001322", "instructionBytes": "e8 19 fe ff ff", "instruction": "call 0x8001140 <__cxa_finalize@plt>" }, { "address": "0x0000000008001327", "instructionBytes": "e8 64 ff ff ff", "instruction": "call 0x8001290 <deregister_tm_clones>" }, { "address": "0x000000000800132c", "instructionBytes": "c6 05 e5 5c 00 00 01", "instruction": "mov BYTE PTR [rip+0x5ce5],0x1 # 0x8007018 <completed.8059>" }, { "address": "0x0000000008001333", "instructionBytes": "5d", "instruction": "pop rbp" }, { "address": "0x0000000008001334", "instructionBytes": "c3", "instruction": "ret " }, { "address": "0x0000000008001335", "instructionBytes": "0f 1f 00", "instruction": "nop DWORD PTR [rax]" }, { "address": "0x0000000008001338", "instructionBytes": "c3", "instruction": "ret " }, { "address": "0x0000000008001339", "instructionBytes": "0f 1f 80 00 00 00 00", "instruction": "nop DWORD PTR [rax+0x0]" }, { "address": "0x0000000008001340", "instructionBytes": "f3 0f 1e fa", "instruction": "endbr64 ", "symbol": "frame_dummy" }, { "address": "0x0000000008001344", "instructionBytes": "e9 77 ff ff ff", "instruction": "jmp 0x80012c0 <register_tm_clones>" }, { "address": "0x0000000008001349", "instructionBytes": "f3 0f 1e fa", "instruction": "endbr64 ", "symbol": "main(int, char**)", "location": { "path": "/home/cpp/main.cpp", "sources": [], "checksums": [] }, "line": 7 }, { "address": "0x000000000800134d", "instructionBytes": "55", "instruction": "push rbp", "location": { "path": "/home/cpp/main.cpp", "sources": [], "checksums": [] }, "line": 7 }, { "address": "0x000000000800134e", "instructionBytes": "48 89 e5", "instruction": "mov rbp,rsp", "location": { "path": "/home/cpp/main.cpp", "sources": [], "checksums": [] }, "line": 7 }, { "address": "0x0000000008001351", "instructionBytes": "41 55", "instruction": "push r13", "location": { "path": "/home/cpp/main.cpp", "sources": [], "checksums": [] }, "line": 7 }, { "address": "0x0000000008001353", "instructionBytes": "41 54", "instruction": "push r12", "location": { "path": "/home/cpp/main.cpp", "sources": [], "checksums": [] }, "line": 7 }, { "address": "0x0000000008001355", "instructionBytes": "53", "instruction": "push rbx", "location": { "path": "/home/cpp/main.cpp", "sources": [], "checksums": [] }, "line": 7 }, { "address": "0x0000000008001356", "instructionBytes": "48 81 ec b8 00 00 00", "instruction": "sub rsp,0xb8", "location": { "path": "/home/cpp/main.cpp", "sources": [], "checksums": [] }, "line": 7 }, { "address": "0x000000000800135d", "instructionBytes": "89 bd 3c ff ff ff", "instruction": "mov DWORD PTR [rbp-0xc4],edi", "location": { "path": "/home/cpp/main.cpp", "sources": [], "checksums": [] }, "line": 7 }, { "address": "0x0000000008001363", "instructionBytes": "48 89 b5 30 ff ff ff", "instruction": "mov QWORD PTR [rbp-0xd0],rsi", "location": { "path": "/home/cpp/main.cpp", "sources": [], "checksums": [] }, "line": 7 }, { "address": "0x000000000800136a", "instructionBytes": "64 48 8b 04 25 28 00 00 00", "instruction": "mov rax,QWORD PTR fs:0x28", "location": { "path": "/home/cpp/main.cpp", "sources": [], "checksums": [] }, "line": 7 }, { "address": "0x0000000008001373", "instructionBytes": "48 89 45 d8", "instruction": "mov QWORD PTR [rbp-0x28],rax", "location": { "path": "/home/cpp/main.cpp", "sources": [], "checksums": [] }, "line": 7 }, { "address": "0x0000000008001377", "instructionBytes": "31 c0", "instruction": "xor eax,eax", "location": { "path": "/home/cpp/main.cpp", "sources": [], "checksums": [] }, "line": 7 }, { "address": "0x0000000008001379", "instructionBytes": "c7 85 4c ff ff ff 00 00 00 00", "instruction": "mov DWORD PTR [rbp-0xb4],0x0", "location": { "path": "/home/cpp/main.cpp", "sources": [], "checksums": [] }, "line": 8 }, { "address": "0x0000000008001383", "instructionBytes": "48 8d 85 50 ff ff ff", "instruction": "lea rax,[rbp-0xb0]", "location": { "path": "/home/cpp/main.cpp", "sources": [], "checksums": [] }, "line": 9 }, { "address": "0x000000000800138a", "instructionBytes": "48 89 c7", "instruction": "mov rdi,rax", "location": { "path": "/home/cpp/main.cpp", "sources": [], "checksums": [] }, "line": 9 }, { "address": "0x000000000800138d", "instructionBytes": "e8 be fe ff ff", "instruction": "call 0x8001250 <_ZNSaIcEC1Ev@plt>", "location": { "path": "/home/cpp/main.cpp", "sources": [], "checksums": [] }, "line": 9 }, { "address": "0x0000000008001392", "instructionBytes": "48 8d 95 50 ff ff ff", "instruction": "lea rdx,[rbp-0xb0]", "location": { "path": "/home/cpp/main.cpp", "sources": [], "checksums": [] }, "line": 9 }, { "address": "0x0000000008001399", "instructionBytes": "48 8d 45 90", "instruction": "lea rax,[rbp-0x70]", "location": { "path": "/home/cpp/main.cpp", "sources": [], "checksums": [] }, "line": 9 }, { "address": "0x000000000800139d", "instructionBytes": "48 8d 35 6f 2c 00 00", "instruction": "lea rsi,[rip+0x2c6f] # 0x8004013", "location": { "path": "/home/cpp/main.cpp", "sources": [], "checksums": [] }, "line": 9 }, { "address": "0x00000000080013a4", "instructionBytes": "48 89 c7", "instruction": "mov rdi,rax", "location": { "path": "/home/cpp/main.cpp", "sources": [], "checksums": [] }, "line": 9 }, { "address": "0x00000000080013a7", "instructionBytes": "e8 54 fe ff ff", "instruction": "call 0x8001200 <_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_@plt>", "location": { "path": "/home/cpp/main.cpp", "sources": [], "checksums": [] }, "line": 9 }, { "address": "0x00000000080013ac", "instructionBytes": "48 8d 85 50 ff ff ff", "instruction": "lea rax,[rbp-0xb0]", "location": { "path": "/home/cpp/main.cpp", "sources": [], "checksums": [] }, "line": 9 }, { "address": "0x00000000080013b3", "instructionBytes": "48 89 c7", "instruction": "mov rdi,rax", "location": { "path": "/home/cpp/main.cpp", "sources": [], "checksums": [] }, "line": 9 }, { "address": "0x00000000080013b6", "instructionBytes": "e8 15 fe ff ff", "instruction": "call 0x80011d0 <_ZNSaIcED1Ev@plt>", "location": { "path": "/home/cpp/main.cpp", "sources": [], "checksums": [] }, "line": 9 }, { "address": "0x00000000080013bb", "instructionBytes": "c7 85 44 ff ff ff 01 00 00 00", "instruction": "mov DWORD PTR [rbp-0xbc],0x1", "location": { "path": "/home/cpp/main.cpp", "sources": [], "checksums": [] }, "line": 11 }, { "address": "0x00000000080013c5", "instructionBytes": "48 8d 95 44 ff ff ff", "instruction": "lea rdx,[rbp-0xbc]", "location": { "path": "/home/cpp/main.cpp", "sources": [], "checksums": [] }, "line": 13 }, { "address": "0x00000000080013cc", "instructionBytes": "48 8d 45 b0", "instruction": "lea rax,[rbp-0x50]", "location": { "path": "/home/cpp/main.cpp", "sources": [], "checksums": [] }, "line": 13 }, { "address": "0x00000000080013d0", "instructionBytes": "48 8d 35 29 59 00 00", "instruction": "lea rsi,[rip+0x5929] # 0x8006d00 <_ZTIi@@CXXABI_1.3>", "location": { "path": "/home/cpp/main.cpp", "sources": [], "checksums": [] }, "line": 13 }, { "address": "0x00000000080013d7", "instructionBytes": "48 89 c7", "instruction": "mov rdi,rax", "location": { "path": "/home/cpp/main.cpp", "sources": [], "checksums": [] }, "line": 13 }, { "address": "0x00000000080013da", "instructionBytes": "e8 1f 04 00 00", "instruction": "call 0x80017fe <std::pair<std::type_index const, int>::pair<std::type_info const&, int, true>(std::type_info const&, int&&)>", "location": { "path": "/home/cpp/main.cpp", "sources": [], "checksums": [] }, "line": 13 }, { "address": "0x00000000080013df", "instructionBytes": "c7 85 48 ff ff ff 02 00 00 00", "instruction": "mov DWORD PTR [rbp-0xb8],0x2", "location": { "path": "/home/cpp/main.cpp", "sources": [], "checksums": [] }, "line": 12 }, { "address": "0x00000000080013e9", "instructionBytes": "48 8d 85 48 ff ff ff", "instruction": "lea rax,[rbp-0xb8]", "location": { "path": "/home/cpp/main.cpp", "sources": [], "checksums": [] }, "line": 13 }, { "address": "0x00000000080013f0", "instructionBytes": "48 8d 55 b0", "instruction": "lea rdx,[rbp-0x50]", "location": { "path": "/home/cpp/main.cpp", "sources": [], "checksums": [] }, "line": 13 }, { "address": "0x00000000080013f4", "instructionBytes": "48 8d 4a 10", "instruction": "lea rcx,[rdx+0x10]", "location": { "path": "/home/cpp/main.cpp", "sources": [], "checksums": [] }, "line": 13 }, { "address": "0x00000000080013f8", "instructionBytes": "48 89 c2", "instruction": "mov rdx,rax", "location": { "path": "/home/cpp/main.cpp", "sources": [], "checksums": [] }, "line": 13 }, { "address": "0x00000000080013fb", "instructionBytes": "48 8d 35 0e 59 00 00", "instruction": "lea rsi,[rip+0x590e] # 0x8006d10 <_ZTId@@CXXABI_1.3>", "location": { "path": "/home/cpp/main.cpp", "sources": [], "checksums": [] }, "line": 13 }, { "address": "0x0000000008001402", "instructionBytes": "48 89 cf", "instruction": "mov rdi,rcx", "location": { "path": "/home/cpp/main.cpp", "sources": [], "checksums": [] }, "line": 13 }, { "address": "0x0000000008001405", "instructionBytes": "e8 f4 03 00 00", "instruction": "call 0x80017fe <std::pair<std::type_index const, int>::pair<std::type_info const&, int, true>(std::type_info const&, int&&)>", "location": { "path": "/home/cpp/main.cpp", "sources": [], "checksums": [] }, "line": 13 }, { "address": "0x000000000800140a", "instructionBytes": "48 8d 45 b0", "instruction": "lea rax,[rbp-0x50]", "location": { "path": "/home/cpp/main.cpp", "sources": [], "checksums": [] }, "line": 13 }, { "address": "0x000000000800140e", "instructionBytes": "49 89 c4", "instruction": "mov r12,rax", "location": { "path": "/home/cpp/main.cpp", "sources": [], "checksums": [] }, "line": 13 }, { "address": "0x0000000008001411", "instructionBytes": "41 bd 02 00 00 00", "instruction": "mov r13d,0x2", "location": { "path": "/home/cpp/main.cpp", "sources": [], "checksums": [] }, "line": 13 }, { "address": "0x0000000008001417", "instructionBytes": "48 8d 85 43 ff ff ff", "instruction": "lea rax,[rbp-0xbd]", "location": { "path": "/home/cpp/main.cpp", "sources": [], "checksums": [] }, "line": 13 }, { "address": "0x000000000800141e", "instructionBytes": "48 89 c7", "instruction": "mov rdi,rax", "location": { "path": "/home/cpp/main.cpp", "sources": [], "checksums": [] }, "line": 13 }, { "address": "0x0000000008001421", "instructionBytes": "e8 7c 04 00 00", "instruction": "call 0x80018a2 <std::allocator<std::pair<std::type_index const, int> >::allocator()>", "location": { "path": "/home/cpp/main.cpp", "sources": [], "checksums": [] }, "line": 13 }, { "address": "0x0000000008001426", "instructionBytes": "48 8d bd 42 ff ff ff", "instruction": "lea rdi,[rbp-0xbe]", "location": { "path": "/home/cpp/main.cpp", "sources": [], "checksums": [] }, "line": 13 }, { "address": "0x000000000800142d", "instructionBytes": "48 8d b5 41 ff ff ff", "instruction": "lea rsi,[rbp-0xbf]", "location": { "path": "/home/cpp/main.cpp", "sources": [], "checksums": [] }, "line": 13 }, { "address": "0x0000000008001434", "instructionBytes": "4c 89 e1", "instruction": "mov rcx,r12", "location": { "path": "/home/cpp/main.cpp", "sources": [], "checksums": [] }, "line": 13 }, { "address": "0x0000000008001437", "instructionBytes": "4c 89 eb", "instruction": "mov rbx,r13", "location": { "path": "/home/cpp/main.cpp", "sources": [], "checksums": [] }, "line": 13 }, { "address": "0x000000000800143a", "instructionBytes": "4c 89 e0", "instruction": "mov rax,r12", "location": { "path": "/home/cpp/main.cpp", "sources": [], "checksums": [] }, "line": 13 }, { "address": "0x000000000800143d", "instructionBytes": "4c 89 ea", "instruction": "mov rdx,r13", "location": { "path": "/home/cpp/main.cpp", "sources": [], "checksums": [] }, "line": 13 }, { "address": "0x0000000008001440", "instructionBytes": "49 89 cb", "instruction": "mov r11,rcx", "location": { "path": "/home/cpp/main.cpp", "sources": [], "checksums": [] }, "line": 13 }, { "address": "0x0000000008001443", "instructionBytes": "49 89 d2", "instruction": "mov r10,rdx", "location": { "path": "/home/cpp/main.cpp", "sources": [], "checksums": [] }, "line": 13 }, { "address": "0x0000000008001446", "instructionBytes": "48 8d 85 50 ff ff ff", "instruction": "lea rax,[rbp-0xb0]", "location": { "path": "/home/cpp/main.cpp", "sources": [], "checksums": [] }, "line": 13 }, { "address": "0x000000000800144d", "instructionBytes": "48 83 ec 08", "instruction": "sub rsp,0x8", "location": { "path": "/home/cpp/main.cpp", "sources": [], "checksums": [] }, "line": 13 }, { "address": "0x0000000008001451", "instructionBytes": "48 8d 95 43 ff ff ff", "instruction": "lea rdx,[rbp-0xbd]", "location": { "path": "/home/cpp/main.cpp", "sources": [], "checksums": [] }, "line": 13 }, { "address": "0x0000000008001458", "instructionBytes": "52", "instruction": "push rdx", "location": { "path": "/home/cpp/main.cpp", "sources": [], "checksums": [] }, "line": 13 }, { "address": "0x0000000008001459", "instructionBytes": "49 89 f9", "instruction": "mov r9,rdi", "location": { "path": "/home/cpp/main.cpp", "sources": [], "checksums": [] }, "line": 13 }, { "address": "0x000000000800145c", "instructionBytes": "49 89 f0", "instruction": "mov r8,rsi", "location": { "path": "/home/cpp/main.cpp", "sources": [], "checksums": [] }, "line": 13 }, { "address": "0x000000000800145f", "instructionBytes": "b9 00 00 00 00", "instruction": "mov ecx,0x0", "location": { "path": "/home/cpp/main.cpp", "sources": [], "checksums": [] }, "line": 13 }, { "address": "0x0000000008001464", "instructionBytes": "4c 89 de", "instruction": "mov rsi,r11", "location": { "path": "/home/cpp/main.cpp", "sources": [], "checksums": [] }, "line": 13 }, { "address": "0x0000000008001467", "instructionBytes": "4c 89 d2", "instruction": "mov rdx,r10", "location": { "path": "/home/cpp/main.cpp", "sources": [], "checksums": [] }, "line": 13 }, { "address": "0x000000000800146a", "instructionBytes": "48 89 c7", "instruction": "mov rdi,rax", "location": { "path": "/home/cpp/main.cpp", "sources": [], "checksums": [] }, "line": 13 }, { "address": "0x000000000800146d", "instructionBytes": "e8 70 04 00 00", "instruction": "call 0x80018e2 <std::unordered_map<std::type_index, int, std::hash<std::type_index>, std::equal_to<std::type_index>, std::allocator<std::pair<std::type_index const, int> > >::unordered_map(std::initializer_list<std::pair<std::type_index const, int> >, unsigned long, std::hash<std::type_index> const&, std::equal_to<std::type_index> const&, std::allocator<std::pair<std::type_index const, int> > const&)>", "location": { "path": "/home/cpp/main.cpp", "sources": [], "checksums": [] }, "line": 13 }, { "address": "0x0000000008001472", "instructionBytes": "48 83 c4 10", "instruction": "add rsp,0x10", "location": { "path": "/home/cpp/main.cpp", "sources": [], "checksums": [] }, "line": 13 }, { "address": "0x0000000008001476", "instructionBytes": "48 8d 85 43 ff ff ff", "instruction": "lea rax,[rbp-0xbd]", "location": { "path": "/home/cpp/main.cpp", "sources": [], "checksums": [] }, "line": 13 }, { "address": "0x000000000800147d", "instructionBytes": "48 89 c7", "instruction": "mov rdi,rax", "location": { "path": "/home/cpp/main.cpp", "sources": [], "checksums": [] }, "line": 13 }, { "address": "0x0000000008001480", "instructionBytes": "e8 3d 04 00 00", "instruction": "call 0x80018c2 <std::allocator<std::pair<std::type_index const, int> >::~allocator()>", "location": { "path": "/home/cpp/main.cpp", "sources": [], "checksums": [] }, "line": 13 }, { "address": "0x0000000008001485", "instructionBytes": "83 bd 4c ff ff ff 00", "instruction": "cmp DWORD PTR [rbp-0xb4],0x0", "location": { "path": "/home/cpp/main.cpp", "sources": [], "checksums": [] }, "line": 15 }, { "address": "0x000000000800148c", "instructionBytes": "75 07", "instruction": "jne 0x8001495 <main(int, char**)+332>", "location": { "path": "/home/cpp/main.cpp", "sources": [], "checksums": [] }, "line": 15 }, { "address": "0x000000000800148e", "instructionBytes": "83 85 4c ff ff ff 01", "instruction": "add DWORD PTR [rbp-0xb4],0x1", "location": { "path": "/home/cpp/main.cpp", "sources": [], "checksums": [] }, "line": 17 }, { "address": "0x0000000008001495", "instructionBytes": "83 bd 4c ff ff ff 01", "instruction": "cmp DWORD PTR [rbp-0xb4],0x1", "location": { "path": "/home/cpp/main.cpp", "sources": [], "checksums": [] }, "line": 20 }, { "address": "0x000000000800149c", "instructionBytes": "75 07", "instruction": "jne 0x80014a5 <main(int, char**)+348>", "location": { "path": "/home/cpp/main.cpp", "sources": [], "checksums": [] }, "line": 20 }, { "address": "0x000000000800149e", "instructionBytes": "83 ad 4c ff ff ff 01", "instruction": "sub DWORD PTR [rbp-0xb4],0x1", "location": { "path": "/home/cpp/main.cpp", "sources": [], "checksums": [] }, "line": 22 }, { "address": "0x00000000080014a5", "instructionBytes": "83 ad 4c ff ff ff 01", "instruction": "sub DWORD PTR [rbp-0xb4],0x1", "location": { "path": "/home/cpp/main.cpp", "sources": [], "checksums": [] }, "line": 27 }, { "address": "0x00000000080014ac", "instructionBytes": "eb f7", "instruction": "jmp 0x80014a5 <main(int, char**)+348>", "location": { "path": "/home/cpp/main.cpp", "sources": [], "checksums": [] }, "line": 27 }, { "address": "0x00000000080014ae", "instructionBytes": "f3 0f 1e fa", "instruction": "endbr64 ", "location": { "path": "/home/cpp/main.cpp", "sources": [], "checksums": [] }, "line": 27 }, { "address": "0x00000000080014b2", "instructionBytes": "48 89 c3", "instruction": "mov rbx,rax", "location": { "path": "/home/cpp/main.cpp", "sources": [], "checksums": [] }, "line": 27 }, { "address": "0x00000000080014b5", "instructionBytes": "48 8d 85 50 ff ff ff", "instruction": "lea rax,[rbp-0xb0]", "location": { "path": "/home/cpp/main.cpp", "sources": [], "checksums": [] }, "line": 27 }, { "address": "0x00000000080014bc", "instructionBytes": "48 89 c7", "instruction": "mov rdi,rax", "location": { "path": "/home/cpp/main.cpp", "sources": [], "checksums": [] }, "line": 27 }, { "address": "0x00000000080014bf", "instructionBytes": "e8 0c fd ff ff", "instruction": "call 0x80011d0 <_ZNSaIcED1Ev@plt>", "location": { "path": "/home/cpp/main.cpp", "sources": [], "checksums": [] }, "line": 27 }, { "address": "0x00000000080014c4", "instructionBytes": "48 89 d8", "instruction": "mov rax,rbx", "location": { "path": "/home/cpp/main.cpp", "sources": [], "checksums": [] }, "line": 27 }, { "address": "0x00000000080014c7", "instructionBytes": "48 89 c7", "instruction": "mov rdi,rax", "location": { "path": "/home/cpp/main.cpp", "sources": [], "checksums": [] }, "line": 27 }, { "address": "0x00000000080014ca", "instructionBytes": "e8 71 fd ff ff", "instruction": "call 0x8001240 <_Unwind_Resume@plt>", "location": { "path": "/home/cpp/main.cpp", "sources": [], "checksums": [] }, "line": 27 }, { "address": "0x00000000080014cf", "instructionBytes": "f3 0f 1e fa", "instruction": "endbr64 ", "location": { "path": "/home/cpp/main.cpp", "sources": [], "checksums": [] }, "line": 27 }, { "address": "0x00000000080014d3", "instructionBytes": "48 89 c3", "instruction": "mov rbx,rax", "location": { "path": "/home/cpp/main.cpp", "sources": [], "checksums": [] }, "line": 27 }, { "address": "0x00000000080014d6", "instructionBytes": "48 8d 85 43 ff ff ff", "instruction": "lea rax,[rbp-0xbd]", "location": { "path": "/home/cpp/main.cpp", "sources": [], "checksums": [] }, "line": 27 }, { "address": "0x00000000080014dd", "instructionBytes": "48 89 c7", "instruction": "mov rdi,rax", "location": { "path": "/home/cpp/main.cpp", "sources": [], "checksums": [] }, "line": 27 }, { "address": "0x00000000080014e0", "instructionBytes": "e8 dd 03 00 00", "instruction": "call 0x80018c2 <std::allocator<std::pair<std::type_index const, int> >::~allocator()>", "location": { "path": "/home/cpp/main.cpp", "sources": [], "checksums": [] }, "line": 27 }, { "address": "0x00000000080014e5", "instructionBytes": "48 8d 45 90", "instruction": "lea rax,[rbp-0x70]", "location": { "path": "/home/cpp/main.cpp", "sources": [], "checksums": [] }, "line": 9 }, { "address": "0x00000000080014e9", "instructionBytes": "48 89 c7", "instruction": "mov rdi,rax", "location": { "path": "/home/cpp/main.cpp", "sources": [], "checksums": [] }, "line": 9 }, { "address": "0x00000000080014ec", "instructionBytes": "e8 9f fc ff ff", "instruction": "call 0x8001190 <_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev@plt>", "location": { "path": "/home/cpp/main.cpp", "sources": [], "checksums": [] }, "line": 9 }, { "address": "0x00000000080014f1", "instructionBytes": "48 89 d8", "instruction": "mov rax,rbx", "location": { "path": "/home/cpp/main.cpp", "sources": [], "checksums": [] }, "line": 9 }, { "address": "0x00000000080014f4", "instructionBytes": "48 89 c7", "instruction": "mov rdi,rax", "location": { "path": "/home/cpp/main.cpp", "sources": [], "checksums": [] }, "line": 9 }, { "address": "0x00000000080014f7", "instructionBytes": "e8 44 fd ff ff", "instruction": "call 0x8001240 <_Unwind_Resume@plt>" }, { "address": "0x00000000080014fc", "instructionBytes": "f3 0f 1e fa", "instruction": "endbr64 ", "symbol": "std::type_info::name() const", "location": { "path": "/usr/include/c++/9/typeinfo", "sources": [], "checksums": [] }, "line": 99 }, { "address": "0x0000000008001500", "instructionBytes": "55", "instruction": "push rbp", "location": { "path": "/usr/include/c++/9/typeinfo", "sources": [], "checksums": [] }, "line": 99 }, { "address": "0x0000000008001501", "instructionBytes": "48 89 e5", "instruction": "mov rbp,rsp", "location": { "path": "/usr/include/c++/9/typeinfo", "sources": [], "checksums": [] }, "line": 99 }, { "address": "0x0000000008001504", "instructionBytes": "48 89 7d f8", "instruction": "mov QWORD PTR [rbp-0x8],rdi", "location": { "path": "/usr/include/c++/9/typeinfo", "sources": [], "checksums": [] }, "line": 99 }, { "address": "0x0000000008001508", "instructionBytes": "48 8b 45 f8", "instruction": "mov rax,QWORD PTR [rbp-0x8]", "location": { "path": "/usr/include/c++/9/typeinfo", "sources": [], "checksums": [] }, "line": 100 }, { "address": "0x000000000800150c", "instructionBytes": "48 8b 40 08", "instruction": "mov rax,QWORD PTR [rax+0x8]", "location": { "path": "/usr/include/c++/9/typeinfo", "sources": [], "checksums": [] }, "line": 100 }, { "address": "0x0000000008001510", "instructionBytes": "0f b6 00", "instruction": "movzx eax,BYTE PTR [rax]", "location": { "path": "/usr/include/c++/9/typeinfo", "sources": [], "checksums": [] }, "line": 100 }, { "address": "0x0000000008001513", "instructionBytes": "3c 2a", "instruction": "cmp al,0x2a", "location": { "path": "/usr/include/c++/9/typeinfo", "sources": [], "checksums": [] }, "line": 100 }, { "address": "0x0000000008001515", "instructionBytes": "75 0e", "instruction": "jne 0x8001525 <std::type_info::name() const+41>", "location": { "path": "/usr/include/c++/9/typeinfo", "sources": [], "checksums": [] }, "line": 100 }, { "address": "0x0000000008001517", "instructionBytes": "48 8b 45 f8", "instruction": "mov rax,QWORD PTR [rbp-0x8]", "location": { "path": "/usr/include/c++/9/typeinfo", "sources": [], "checksums": [] }, "line": 100 }, { "address": "0x000000000800151b", "instructionBytes": "48 8b 40 08", "instruction": "mov rax,QWORD PTR [rax+0x8]", "location": { "path": "/usr/include/c++/9/typeinfo", "sources": [], "checksums": [] }, "line": 100 }, { "address": "0x000000000800151f", "instructionBytes": "48 83 c0 01", "instruction": "add rax,0x1", "location": { "path": "/usr/include/c++/9/typeinfo", "sources": [], "checksums": [] }, "line": 100 }, { "address": "0x0000000008001523", "instructionBytes": "eb 08", "instruction": "jmp 0x800152d <std::type_info::name() const+49>", "location": { "path": "/usr/include/c++/9/typeinfo", "sources": [], "checksums": [] }, "line": 100 }, { "address": "0x0000000008001525", "instructionBytes": "48 8b 45 f8", "instruction": "mov rax,QWORD PTR [rbp-0x8]", "location": { "path": "/usr/include/c++/9/typeinfo", "sources": [], "checksums": [] }, "line": 100 }, { "address": "0x0000000008001529", "instructionBytes": "48 8b 40 08", "instruction": "mov rax,QWORD PTR [rax+0x8]", "location": { "path": "/usr/include/c++/9/typeinfo", "sources": [], "checksums": [] }, "line": 100 }, { "address": "0x000000000800152d", "instructionBytes": "5d", "instruction": "pop rbp", "location": { "path": "/usr/include/c++/9/typeinfo", "sources": [], "checksums": [] }, "line": 100 }, { "address": "0x000000000800152e", "instructionBytes": "c3", "instruction": "ret " }, { "address": "0x000000000800152f", "instructionBytes": "90", "instruction": "nop", "symbol": "" }, { "address": "0x0000000008001530", "instructionBytes": "f3 0f 1e fa", "instruction": "endbr64 ", "symbol": "std::type_info::operator==(std::type_info const&) const", "location": { "path": "/usr/include/c++/9/typeinfo", "sources": [], "checksums": [] }, "line": 120 }, { "address": "0x0000000008001534", "instructionBytes": "55", "instruction": "push rbp", "location": { "path": "/usr/include/c++/9/typeinfo", "sources": [], "checksums": [] }, "line": 120 }, { "address": "0x0000000008001535", "instructionBytes": "48 89 e5", "instruction": "mov rbp,rsp", "location": { "path": "/usr/include/c++/9/typeinfo", "sources": [], "checksums": [] }, "line": 120 }, { "address": "0x0000000008001538", "instructionBytes": "48 83 ec 10", "instruction": "sub rsp,0x10", "location": { "path": "/usr/include/c++/9/typeinfo", "sources": [], "checksums": [] }, "line": 120 }, { "address": "0x000000000800153c", "instructionBytes": "48 89 7d f8", "instruction": "mov QWORD PTR [rbp-0x8],rdi", "location": { "path": "/usr/include/c++/9/typeinfo", "sources": [], "checksums": [] }, "line": 120 }, { "address": "0x0000000008001540", "instructionBytes": "48 89 75 f0", "instruction": "mov QWORD PTR [rbp-0x10],rsi", "location": { "path": "/usr/include/c++/9/typeinfo", "sources": [], "checksums": [] }, "line": 120 }, { "address": "0x0000000008001544", "instructionBytes": "48 8b 45 f8", "instruction": "mov rax,QWORD PTR [rbp-0x8]", "location": { "path": "/usr/include/c++/9/typeinfo", "sources": [], "checksums": [] }, "line": 122 }, { "address": "0x0000000008001548", "instructionBytes": "48 8b 50 08", "instruction": "mov rdx,QWORD PTR [rax+0x8]", "location": { "path": "/usr/include/c++/9/typeinfo", "sources": [], "checksums": [] }, "line": 122 }, { "address": "0x000000000800154c", "instructionBytes": "48 8b 45 f0", "instruction": "mov rax,QWORD PTR [rbp-0x10]", "location": { "path": "/usr/include/c++/9/typeinfo", "sources": [], "checksums": [] }, "line": 122 }, { "address": "0x0000000008001550", "instructionBytes": "48 8b 40 08", "instruction": "mov rax,QWORD PTR [rax+0x8]", "location": { "path": "/usr/include/c++/9/typeinfo", "sources": [], "checksums": [] }, "line": 122 }, { "address": "0x0000000008001554", "instructionBytes": "48 39 c2", "instruction": "cmp rdx,rax", "location": { "path": "/usr/include/c++/9/typeinfo", "sources": [], "checksums": [] }, "line": 123 }, { "address": "0x0000000008001557", "instructionBytes": "74 2e", "instruction": "je 0x8001587 <std::type_info::operator==(std::type_info const&) const+87>", "location": { "path": "/usr/include/c++/9/typeinfo", "sources": [], "checksums": [] }, "line": 123 }, { "address": "0x0000000008001559", "instructionBytes": "48 8b 45 f8", "instruction": "mov rax,QWORD PTR [rbp-0x8]", "location": { "path": "/usr/include/c++/9/typeinfo", "sources": [], "checksums": [] }, "line": 123 }, { "address": "0x000000000800155d", "instructionBytes": "48 8b 40 08", "instruction": "mov rax,QWORD PTR [rax+0x8]", "location": { "path": "/usr/include/c++/9/typeinfo", "sources": [], "checksums": [] }, "line": 123 }, { "address": "0x0000000008001561", "instructionBytes": "0f b6 00", "instruction": "movzx eax,BYTE PTR [rax]", "location": { "path": "/usr/include/c++/9/typeinfo", "sources": [], "checksums": [] }, "line": 123 }, { "address": "0x0000000008001564", "instructionBytes": "3c 2a", "instruction": "cmp al,0x2a", "location": { "path": "/usr/include/c++/9/typeinfo", "sources": [], "checksums": [] }, "line": 123 }, { "address": "0x0000000008001566", "instructionBytes": "74 26", "instruction": "je 0x800158e <std::type_info::operator==(std::type_info const&) const+94>", "location": { "path": "/usr/include/c++/9/typeinfo", "sources": [], "checksums": [] }, "line": 123 }, { "address": "0x0000000008001568", "instructionBytes": "48 8b 45 f0", "instruction": "mov rax,QWORD PTR [rbp-0x10]", "location": { "path": "/usr/include/c++/9/typeinfo", "sources": [], "checksums": [] }, "line": 124 }, { "address": "0x000000000800156c", "instructionBytes": "48 8b 50 08", "instruction": "mov rdx,QWORD PTR [rax+0x8]", "location": { "path": "/usr/include/c++/9/typeinfo", "sources": [], "checksums": [] }, "line": 124 }, { "address": "0x0000000008001570", "instructionBytes": "48 8b 45 f8", "instruction": "mov rax,QWORD PTR [rbp-0x8]", "location": { "path": "/usr/include/c++/9/typeinfo", "sources": [], "checksums": [] }, "line": 124 }, { "address": "0x0000000008001574", "instructionBytes": "48 8b 40 08", "instruction": "mov rax,QWORD PTR [rax+0x8]", "location": { "path": "/usr/include/c++/9/typeinfo", "sources": [], "checksums": [] }, "line": 124 }, { "address": "0x0000000008001578", "instructionBytes": "48 89 d6", "instruction": "mov rsi,rdx", "location": { "path": "/usr/include/c++/9/typeinfo", "sources": [], "checksums": [] }, "line": 124 }, { "address": "0x000000000800157b", "instructionBytes": "48 89 c7", "instruction": "mov rdi,rax", "location": { "path": "/usr/include/c++/9/typeinfo", "sources": [], "checksums": [] }, "line": 124 }, { "address": "0x000000000800157e", "instructionBytes": "e8 8d fc ff ff", "instruction": "call 0x8001210 <strcmp@plt>", "location": { "path": "/usr/include/c++/9/typeinfo", "sources": [], "checksums": [] }, "line": 124 }, { "address": "0x0000000008001583", "instructionBytes": "85 c0", "instruction": "test eax,eax", "location": { "path": "/usr/include/c++/9/typeinfo", "sources": [], "checksums": [] }, "line": 123 }, { "address": "0x0000000008001585", "instructionBytes": "75 07", "instruction": "jne 0x800158e <std::type_info::operator==(std::type_info const&) const+94>", "location": { "path": "/usr/include/c++/9/typeinfo", "sources": [], "checksums": [] }, "line": 123 }, { "address": "0x0000000008001587", "instructionBytes": "b8 01 00 00 00", "instruction": "mov eax,0x1", "location": { "path": "/usr/include/c++/9/typeinfo", "sources": [], "checksums": [] }, "line": 123 }, { "address": "0x000000000800158c", "instructionBytes": "eb 05", "instruction": "jmp 0x8001593 <std::type_info::operator==(std::type_info const&) const+99>", "location": { "path": "/usr/include/c++/9/typeinfo", "sources": [], "checksums": [] }, "line": 123 }, { "address": "0x000000000800158e", "instructionBytes": "b8 00 00 00 00", "instruction": "mov eax,0x0", "location": { "path": "/usr/include/c++/9/typeinfo", "sources": [], "checksums": [] }, "line": 123 }, { "address": "0x0000000008001593", "instructionBytes": "c9", "instruction": "leave ", "location": { "path": "/usr/include/c++/9/typeinfo", "sources": [], "checksums": [] }, "line": 125 }, { "address": "0x0000000008001594", "instructionBytes": "c3", "instruction": "ret " }, { "address": "0x0000000008001595", "instructionBytes": "90", "instruction": "nop", "symbol": "" }, { "address": "0x0000000008001596", "instructionBytes": "f3 0f 1e fa", "instruction": "endbr64 ", "symbol": "std::type_info::hash_code() const", "location": { "path": "/usr/include/c++/9/typeinfo", "sources": [], "checksums": [] }, "line": 140 }, { "address": "0x000000000800159a", "instructionBytes": "55", "instruction": "push rbp", "location": { "path": "/usr/include/c++/9/typeinfo", "sources": [], "checksums": [] }, "line": 140 }, { "address": "0x000000000800159b", "instructionBytes": "48 89 e5", "instruction": "mov rbp,rsp", "location": { "path": "/usr/include/c++/9/typeinfo", "sources": [], "checksums": [] }, "line": 140 }, { "address": "0x000000000800159e", "instructionBytes": "53", "instruction": "push rbx", "location": { "path": "/usr/include/c++/9/typeinfo", "sources": [], "checksums": [] }, "line": 140 }, { "address": "0x000000000800159f", "instructionBytes": "48 83 ec 18", "instruction": "sub rsp,0x18", "location": { "path": "/usr/include/c++/9/typeinfo", "sources": [], "checksums": [] }, "line": 140 }, { "address": "0x00000000080015a3", "instructionBytes": "48 89 7d e8", "instruction": "mov QWORD PTR [rbp-0x18],rdi", "location": { "path": "/usr/include/c++/9/typeinfo", "sources": [], "checksums": [] }, "line": 140 }, { "address": "0x00000000080015a7", "instructionBytes": "48 8b 45 e8", "instruction": "mov rax,QWORD PTR [rbp-0x18]", "location": { "path": "/usr/include/c++/9/typeinfo", "sources": [], "checksums": [] }, "line": 143 }, { "address": "0x00000000080015ab", "instructionBytes": "48 89 c7", "instruction": "mov rdi,rax", "location": { "path": "/usr/include/c++/9/typeinfo", "sources": [], "checksums": [] }, "line": 143 }, { "address": "0x00000000080015ae", "instructionBytes": "e8 49 ff ff ff", "instruction": "call 0x80014fc <std::type_info::name() const>", "location": { "path": "/usr/include/c++/9/typeinfo", "sources": [], "checksums": [] }, "line": 143 }, { "address": "0x00000000080015b3", "instructionBytes": "48 c7 c1 ff ff ff ff", "instruction": "mov rcx,0xffffffffffffffff", "location": { "path": "/usr/include/c++/9/typeinfo", "sources": [], "checksums": [] }, "line": 143 }, { "address": "0x00000000080015ba", "instructionBytes": "48 89 c2", "instruction": "mov rdx,rax", "location": { "path": "/usr/include/c++/9/typeinfo", "sources": [], "checksums": [] }, "line": 143 }, { "address": "0x00000000080015bd", "instructionBytes": "b8 00 00 00 00", "instruction": "mov eax,0x0", "location": { "path": "/usr/include/c++/9/typeinfo", "sources": [], "checksums": [] }, "line": 143 }, { "address": "0x00000000080015c2", "instructionBytes": "48 89 d7", "instruction": "mov rdi,rdx", "location": { "path": "/usr/include/c++/9/typeinfo", "sources": [], "checksums": [] }, "line": 143 }, { "address": "0x00000000080015c5", "instructionBytes": "f2 ae", "instruction": "repnz scas al,BYTE PTR es:[rdi]", "location": { "path": "/usr/include/c++/9/typeinfo", "sources": [], "checksums": [] }, "line": 143 }, { "address": "0x00000000080015c7", "instructionBytes": "48 89 c8", "instruction": "mov rax,rcx", "location": { "path": "/usr/include/c++/9/typeinfo", "sources": [], "checksums": [] }, "line": 143 }, { "address": "0x00000000080015ca", "instructionBytes": "48 f7 d0", "instruction": "not rax", "location": { "path": "/usr/include/c++/9/typeinfo", "sources": [], "checksums": [] }, "line": 143 }, { "address": "0x00000000080015cd", "instructionBytes": "48 8d 58 ff", "instruction": "lea rbx,[rax-0x1]", "location": { "path": "/usr/include/c++/9/typeinfo", "sources": [], "checksums": [] }, "line": 143 }, { "address": "0x00000000080015d1", "instructionBytes": "48 8b 45 e8", "instruction": "mov rax,QWORD PTR [rbp-0x18]", "location": { "path": "/usr/include/c++/9/typeinfo", "sources": [], "checksums": [] }, "line": 143 }, { "address": "0x00000000080015d5", "instructionBytes": "48 89 c7", "instruction": "mov rdi,rax", "location": { "path": "/usr/include/c++/9/typeinfo", "sources": [], "checksums": [] }, "line": 143 }, { "address": "0x00000000080015d8", "instructionBytes": "e8 1f ff ff ff", "instruction": "call 0x80014fc <std::type_info::name() const>", "location": { "path": "/usr/include/c++/9/typeinfo", "sources": [], "checksums": [] }, "line": 143 }, { "address": "0x00000000080015dd", "instructionBytes": "ba 07 69 0f c7", "instruction": "mov edx,0xc70f6907", "location": { "path": "/usr/include/c++/9/typeinfo", "sources": [], "checksums": [] }, "line": 143 }, { "address": "0x00000000080015e2", "instructionBytes": "48 89 de", "instruction": "mov rsi,rbx", "location": { "path": "/usr/include/c++/9/typeinfo", "sources": [], "checksums": [] }, "line": 143 }, { "address": "0x00000000080015e5", "instructionBytes": "48 89 c7", "instruction": "mov rdi,rax", "location": { "path": "/usr/include/c++/9/typeinfo", "sources": [], "checksums": [] }, "line": 143 }, { "address": "0x00000000080015e8", "instructionBytes": "e8 63 fb ff ff", "instruction": "call 0x8001150 <_ZSt11_Hash_bytesPKvmm@plt>", "location": { "path": "/usr/include/c++/9/typeinfo", "sources": [], "checksums": [] }, "line": 143 }, { "address": "0x00000000080015ed", "instructionBytes": "48 83 c4 18", "instruction": "add rsp,0x18", "location": { "path": "/usr/include/c++/9/typeinfo", "sources": [], "checksums": [] }, "line": 148 }, { "address": "0x00000000080015f1", "instructionBytes": "5b", "instruction": "pop rbx", "location": { "path": "/usr/include/c++/9/typeinfo", "sources": [], "checksums": [] }, "line": 148 }, { "address": "0x00000000080015f2", "instructionBytes": "5d", "instruction": "pop rbp", "location": { "path": "/usr/include/c++/9/typeinfo", "sources": [], "checksums": [] }, "line": 148 }, { "address": "0x00000000080015f3", "instructionBytes": "c3", "instruction": "ret " }, { "address": "0x00000000080015f4", "instructionBytes": "f3 0f 1e fa", "instruction": "endbr64 ", "symbol": "operator new(unsigned long, void*)", "location": { "path": "/usr/include/c++/9/new", "sources": [], "checksums": [] }, "line": 174 }, { "address": "0x00000000080015f8", "instructionBytes": "55", "instruction": "push rbp", "location": { "path": "/usr/include/c++/9/new", "sources": [], "checksums": [] }, "line": 174 }, { "address": "0x00000000080015f9", "instructionBytes": "48 89 e5", "instruction": "mov rbp,rsp", "location": { "path": "/usr/include/c++/9/new", "sources": [], "checksums": [] }, "line": 174 }, { "address": "0x00000000080015fc", "instructionBytes": "48 89 7d f8", "instruction": "mov QWORD PTR [rbp-0x8],rdi", "location": { "path": "/usr/include/c++/9/new", "sources": [], "checksums": [] }, "line": 174 }, { "address": "0x0000000008001600", "instructionBytes": "48 89 75 f0", "instruction": "mov QWORD PTR [rbp-0x10],rsi", "location": { "path": "/usr/include/c++/9/new", "sources": [], "checksums": [] }, "line": 174 }, { "address": "0x0000000008001604", "instructionBytes": "48 8b 45 f0", "instruction": "mov rax,QWORD PTR [rbp-0x10]", "location": { "path": "/usr/include/c++/9/new", "sources": [], "checksums": [] }, "line": 174 }, { "address": "0x0000000008001608", "instructionBytes": "5d", "instruction": "pop rbp", "location": { "path": "/usr/include/c++/9/new", "sources": [], "checksums": [] }, "line": 174 }, { "address": "0x0000000008001609", "instructionBytes": "c3", "instruction": "ret " }, { "address": "0x000000000800160a", "instructionBytes": "f3 0f 1e fa", "instruction": "endbr64 ", "symbol": "std::__detail::_Hash_node_base::_Hash_node_base()", "location": { "path": "/usr/include/c++/9/bits/hashtable_policy.h", "sources": [], "checksums": [] }, "line": 218 }, { "address": "0x000000000800160e", "instructionBytes": "55", "instruction": "push rbp", "location": { "path": "/usr/include/c++/9/bits/hashtable_policy.h", "sources": [], "checksums": [] }, "line": 218 }, { "address": "0x000000000800160f", "instructionBytes": "48 89 e5", "instruction": "mov rbp,rsp", "location": { "path": "/usr/include/c++/9/bits/hashtable_policy.h", "sources": [], "checksums": [] }, "line": 218 }, { "address": "0x0000000008001612", "instructionBytes": "48 89 7d f8", "instruction": "mov QWORD PTR [rbp-0x8],rdi", "location": { "path": "/usr/include/c++/9/bits/hashtable_policy.h", "sources": [], "checksums": [] }, "line": 218 }, { "address": "0x0000000008001616", "instructionBytes": "48 8b 45 f8", "instruction": "mov rax,QWORD PTR [rbp-0x8]", "location": { "path": "/usr/include/c++/9/bits/hashtable_policy.h", "sources": [], "checksums": [] }, "line": 218 }, { "address": "0x000000000800161a", "instructionBytes": "48 c7 00 00 00 00 00", "instruction": "mov QWORD PTR [rax],0x0", "location": { "path": "/usr/include/c++/9/bits/hashtable_policy.h", "sources": [], "checksums": [] }, "line": 218 }, { "address": "0x0000000008001621", "instructionBytes": "90", "instruction": "nop", "location": { "path": "/usr/include/c++/9/bits/hashtable_policy.h", "sources": [], "checksums": [] }, "line": 218 }, { "address": "0x0000000008001622", "instructionBytes": "5d", "instruction": "pop rbp", "location": { "path": "/usr/include/c++/9/bits/hashtable_policy.h", "sources": [], "checksums": [] }, "line": 218 }, { "address": "0x0000000008001623", "instructionBytes": "c3", "instruction": "ret " }, { "address": "0x0000000008001624", "instructionBytes": "f3 0f 1e fa", "instruction": "endbr64 ", "symbol": "std::__detail::_Mod_range_hashing::operator()(unsigned long, unsigned long) const", "location": { "path": "/usr/include/c++/9/bits/hashtable_policy.h", "sources": [], "checksums": [] }, "line": 431 }, { "address": "0x0000000008001628", "instructionBytes": "55", "instruction": "push rbp", "location": { "path": "/usr/include/c++/9/bits/hashtable_policy.h", "sources": [], "checksums": [] }, "line": 431 }, { "address": "0x0000000008001629", "instructionBytes": "48 89 e5", "instruction": "mov rbp,rsp", "location": { "path": "/usr/include/c++/9/bits/hashtable_policy.h", "sources": [], "checksums": [] }, "line": 431 }, { "address": "0x000000000800162c", "instructionBytes": "48 89 7d f8", "instruction": "mov QWORD PTR [rbp-0x8],rdi", "location": { "path": "/usr/include/c++/9/bits/hashtable_policy.h", "sources": [], "checksums": [] }, "line": 431 }, { "address": "0x0000000008001630", "instructionBytes": "48 89 75 f0", "instruction": "mov QWORD PTR [rbp-0x10],rsi", "location": { "path": "/usr/include/c++/9/bits/hashtable_policy.h", "sources": [], "checksums": [] }, "line": 431 }, { "address": "0x0000000008001634", "instructionBytes": "48 89 55 e8", "instruction": "mov QWORD PTR [rbp-0x18],rdx", "location": { "path": "/usr/include/c++/9/bits/hashtable_policy.h", "sources": [], "checksums": [] }, "line": 431 }, { "address": "0x0000000008001638", "instructionBytes": "48 8b 45 f0", "instruction": "mov rax,QWORD PTR [rbp-0x10]", "location": { "path": "/usr/include/c++/9/bits/hashtable_policy.h", "sources": [], "checksums": [] }, "line": 433 }, { "address": "0x000000000800163c", "instructionBytes": "ba 00 00 00 00", "instruction": "mov edx,0x0", "location": { "path": "/usr/include/c++/9/bits/hashtable_policy.h", "sources": [], "checksums": [] }, "line": 433 }, { "address": "0x0000000008001641", "instructionBytes": "48 f7 75 e8", "instruction": "div QWORD PTR [rbp-0x18]", "location": { "path": "/usr/include/c++/9/bits/hashtable_policy.h", "sources": [], "checksums": [] }, "line": 433 }, { "address": "0x0000000008001645", "instructionBytes": "48 89 d0", "instruction": "mov rax,rdx", "location": { "path": "/usr/include/c++/9/bits/hashtable_policy.h", "sources": [], "checksums": [] }, "line": 433 }, { "address": "0x0000000008001648", "instructionBytes": "5d", "instruction": "pop rbp", "location": { "path": "/usr/include/c++/9/bits/hashtable_policy.h", "sources": [], "checksums": [] }, "line": 433 }, { "address": "0x0000000008001649", "instructionBytes": "c3", "instruction": "ret " }, { "address": "0x000000000800164a", "instructionBytes": "f3 0f 1e fa", "instruction": "endbr64 ", "symbol": "std::__detail::_Prime_rehash_policy::_Prime_rehash_policy(float)", "location": { "path": "/usr/include/c++/9/bits/hashtable_policy.h", "sources": [], "checksums": [] }, "line": 449 }, { "address": "0x000000000800164e", "instructionBytes": "55", "instruction": "push rbp", "location": { "path": "/usr/include/c++/9/bits/hashtable_policy.h", "sources": [], "checksums": [] }, "line": 449 }, { "address": "0x000000000800164f", "instructionBytes": "48 89 e5", "instruction": "mov rbp,rsp", "location": { "path": "/usr/include/c++/9/bits/hashtable_policy.h", "sources": [], "checksums": [] }, "line": 449 }, { "address": "0x0000000008001652", "instructionBytes": "48 89 7d f8", "instruction": "mov QWORD PTR [rbp-0x8],rdi", "location": { "path": "/usr/include/c++/9/bits/hashtable_policy.h", "sources": [], "checksums": [] }, "line": 449 }, { "address": "0x0000000008001656", "instructionBytes": "f3 0f 11 45 f4", "instruction": "movss DWORD PTR [rbp-0xc],xmm0", "location": { "path": "/usr/include/c++/9/bits/hashtable_policy.h", "sources": [], "checksums": [] }, "line": 449 }, { "address": "0x000000000800165b", "instructionBytes": "48 8b 45 f8", "instruction": "mov rax,QWORD PTR [rbp-0x8]", "location": { "path": "/usr/include/c++/9/bits/hashtable_policy.h", "sources": [], "checksums": [] }, "line": 450 }, { "address": "0x000000000800165f", "instructionBytes": "f3 0f 10 45 f4", "instruction": "movss xmm0,DWORD PTR [rbp-0xc]", "location": { "path": "/usr/include/c++/9/bits/hashtable_policy.h", "sources": [], "checksums": [] }, "line": 450 }, { "address": "0x0000000008001664", "instructionBytes": "f3 0f 11 00", "instruction": "movss DWORD PTR [rax],xmm0", "location": { "path": "/usr/include/c++/9/bits/hashtable_policy.h", "sources": [], "checksums": [] }, "line": 450 }, { "address": "0x0000000008001668", "instructionBytes": "48 8b 45 f8", "instruction": "mov rax,QWORD PTR [rbp-0x8]", "location": { "path": "/usr/include/c++/9/bits/hashtable_policy.h", "sources": [], "checksums": [] }, "line": 450 }, { "address": "0x000000000800166c", "instructionBytes": "48 c7 40 08 00 00 00 00", "instruction": "mov QWORD PTR [rax+0x8],0x0", "location": { "path": "/usr/include/c++/9/bits/hashtable_policy.h", "sources": [], "checksums": [] }, "line": 450 }, { "address": "0x0000000008001674", "instructionBytes": "90", "instruction": "nop", "location": { "path": "/usr/include/c++/9/bits/hashtable_policy.h", "sources": [], "checksums": [] }, "line": 450 }, { "address": "0x0000000008001675", "instructionBytes": "5d", "instruction": "pop rbp", "location": { "path": "/usr/include/c++/9/bits/hashtable_policy.h", "sources": [], "checksums": [] }, "line": 450 }, { "address": "0x0000000008001676", "instructionBytes": "c3", "instruction": "ret " }, { "address": "0x0000000008001677", "instructionBytes": "90", "instruction": "nop", "symbol": "" }, { "address": "0x0000000008001678", "instructionBytes": "f3 0f 1e fa", "instruction": "endbr64 ", "symbol": "std::__detail::_Prime_rehash_policy::_M_bkt_for_elements(unsigned long) const", "location": { "path": "/usr/include/c++/9/bits/hashtable_policy.h", "sources": [], "checksums": [] }, "line": 462 }, { "address": "0x000000000800167c", "instructionBytes": "55", "instruction": "push rbp", "location": { "path": "/usr/include/c++/9/bits/hashtable_policy.h", "sources": [], "checksums": [] }, "line": 462 }, { "address": "0x000000000800167d", "instructionBytes": "48 89 e5", "instruction": "mov rbp,rsp", "location": { "path": "/usr/include/c++/9/bits/hashtable_policy.h", "sources": [], "checksums": [] }, "line": 462 }, { "address": "0x0000000008001680", "instructionBytes": "48 89 7d f8", "instruction": "mov QWORD PTR [rbp-0x8],rdi", "location": { "path": "/usr/include/c++/9/bits/hashtable_policy.h", "sources": [], "checksums": [] }, "line": 462 }, { "address": "0x0000000008001684", "instructionBytes": "48 89 75 f0", "instruction": "mov QWORD PTR [rbp-0x10],rsi", "location": { "path": "/usr/include/c++/9/bits/hashtable_policy.h", "sources": [], "checksums": [] }, "line": 462 }, { "address": "0x0000000008001688", "instructionBytes": "df 6d f0", "instruction": "fild QWORD PTR [rbp-0x10]", "location": { "path": "/usr/include/c++/9/bits/hashtable_policy.h", "sources": [], "checksums": [] }, "line": 463 }, { "address": "0x000000000800168b", "instructionBytes": "48 83 7d f0 00", "instruction": "cmp QWORD PTR [rbp-0x10],0x0", "location": { "path": "/usr/include/c++/9/bits/hashtable_policy.h", "sources": [], "checksums": [] }, "line": 463 }, { "address": "0x0000000008001690", "instructionBytes": "79 08", "instruction": "jns 0x800169a <std::__detail::_Prime_rehash_policy::_M_bkt_for_elements(unsigned long) const+34>", "location": { "path": "/usr/include/c++/9/bits/hashtable_policy.h", "sources": [], "checksums": [] }, "line": 463 }, { "address": "0x0000000008001692", "instructionBytes": "db 2d 88 29 00 00", "instruction": "fld TBYTE PTR [rip+0x2988] # 0x8004020", "location": { "path": "/usr/include/c++/9/bits/hashtable_policy.h", "sources": [], "checksums": [] }, "line": 463 }, { "address": "0x0000000008001698", "instructionBytes": "de c1", "instruction": "faddp st(1),st", "location": { "path": "/usr/include/c++/9/bits/hashtable_policy.h", "sources": [], "checksums": [] }, "line": 463 }, { "address": "0x000000000800169a", "instructionBytes": "48 8b 45 f8", "instruction": "mov rax,QWORD PTR [rbp-0x8]", "location": { "path": "/usr/include/c++/9/bits/hashtable_policy.h", "sources": [], "checksums": [] }, "line": 463 }, { "address": "0x000000000800169e", "instructionBytes": "f3 0f 10 28", "instruction": "movss xmm5,DWORD PTR [rax]", "location": { "path": "/usr/include/c++/9/bits/hashtable_policy.h", "sources": [], "checksums": [] }, "line": 463 }, { "address": "0x00000000080016a2", "instructionBytes": "f3 0f 11 6d e8", "instruction": "movss DWORD PTR [rbp-0x18],xmm5", "location": { "path": "/usr/include/c++/9/bits/hashtable_policy.h", "sources": [], "checksums": [] }, "line": 463 }, { "address": "0x00000000080016a7", "instructionBytes": "d9 45 e8", "instruction": "fld DWORD PTR [rbp-0x18]", "location": { "path": "/usr/include/c++/9/bits/hashtable_policy.h", "sources": [], "checksums": [] }, "line": 463 }, { "address": "0x00000000080016aa", "instructionBytes": "de f9", "instruction": "fdivp st(1),st", "location": { "path": "/usr/include/c++/9/bits/hashtable_policy.h", "sources": [], "checksums": [] }, "line": 463 }, { "address": "0x00000000080016ac", "instructionBytes": "dd 5d e8", "instruction": "fstp QWORD PTR [rbp-0x18]", "location": { "path": "/usr/include/c++/9/bits/hashtable_policy.h", "sources": [], "checksums": [] }, "line": 463 }, { "address": "0x00000000080016af", "instructionBytes": "f2 0f 10 65 e8", "instruction": "movsd xmm4,QWORD PTR [rbp-0x18]", "location": { "path": "/usr/include/c++/9/bits/hashtable_policy.h", "sources": [], "checksums": [] }, "line": 463 }, { "address": "0x00000000080016b4", "instructionBytes": "f2 0f 10 1d 74 29 00 00", "instruction": "movsd xmm3,QWORD PTR [rip+0x2974] # 0x8004030", "location": { "path": "/usr/include/c++/9/bits/hashtable_policy.h", "sources": [], "checksums": [] }, "line": 463 }, { "address": "0x00000000080016bc", "instructionBytes": "66 0f 28 c4", "instruction": "movapd xmm0,xmm4", "location": { "path": "/usr/include/c++/9/bits/hashtable_policy.h", "sources": [], "checksums": [] }, "line": 463 }, { "address": "0x00000000080016c0", "instructionBytes": "f3 0f 7e 0d 78 29 00 00", "instruction": "movq xmm1,QWORD PTR [rip+0x2978] # 0x8004040", "location": { "path": "/usr/include/c++/9/bits/hashtable_policy.h", "sources": [], "checksums": [] }, "line": 463 }, { "address": "0x00000000080016c8", "instructionBytes": "66 0f 28 d1", "instruction": "movapd xmm2,xmm1", "location": { "path": "/usr/include/c++/9/bits/hashtable_policy.h", "sources": [], "checksums": [] }, "line": 463 }, { "address": "0x00000000080016cc", "instructionBytes": "66 0f 28 c8", "instruction": "movapd xmm1,xmm0", "location": { "path": "/usr/include/c++/9/bits/hashtable_policy.h", "sources": [], "checksums": [] }, "line": 463 }, { "address": "0x00000000080016d0", "instructionBytes": "66 0f 54 ca", "instruction": "andpd xmm1,xmm2", "location": { "path": "/usr/include/c++/9/bits/hashtable_policy.h", "sources": [], "checksums": [] }, "line": 463 }, { "address": "0x00000000080016d4", "instructionBytes": "66 0f 2e d9", "instruction": "ucomisd xmm3,xmm1", "location": { "path": "/usr/include/c++/9/bits/hashtable_policy.h", "sources": [], "checksums": [] }, "line": 463 }, { "address": "0x00000000080016d8", "instructionBytes": "76 2b", "instruction": "jbe 0x8001705 <std::__detail::_Prime_rehash_policy::_M_bkt_for_elements(unsigned long) const+141>", "location": { "path": "/usr/include/c++/9/bits/hashtable_policy.h", "sources": [], "checksums": [] }, "line": 463 }, { "address": "0x00000000080016da", "instructionBytes": "f2 48 0f 2c c0", "instruction": "cvttsd2si rax,xmm0", "location": { "path": "/usr/include/c++/9/bits/hashtable_policy.h", "sources": [], "checksums": [] }, "line": 463 }, { "address": "0x00000000080016df", "instructionBytes": "f2 48 0f 2a c8", "instruction": "cvtsi2sd xmm1,rax", "location": { "path": "/usr/include/c++/9/bits/hashtable_policy.h", "sources": [], "checksums": [] }, "line": 463 }, { "address": "0x00000000080016e4", "instructionBytes": "f2 0f 10 1d 64 29 00 00", "instruction": "movsd xmm3,QWORD PTR [rip+0x2964] # 0x8004050", "location": { "path": "/usr/include/c++/9/bits/hashtable_policy.h", "sources": [], "checksums": [] }, "line": 463 }, { "address": "0x00000000080016ec", "instructionBytes": "f2 0f c2 c1 06", "instruction": "cmpnlesd xmm0,xmm1", "location": { "path": "/usr/include/c++/9/bits/hashtable_policy.h", "sources": [], "checksums": [] }, "line": 463 }, { "address": "0x00000000080016f1", "instructionBytes": "66 0f 54 c3", "instruction": "andpd xmm0,xmm3", "location": { "path": "/usr/include/c++/9/bits/hashtable_policy.h", "sources": [], "checksums": [] }, "line": 463 }, { "address": "0x00000000080016f5", "instructionBytes": "f2 0f 58 c1", "instruction": "addsd xmm0,xmm1", "location": { "path": "/usr/include/c++/9/bits/hashtable_policy.h", "sources": [], "checksums": [] }, "line": 463 }, { "address": "0x00000000080016f9", "instructionBytes": "66 0f 55 d4", "instruction": "andnpd xmm2,xmm4", "location": { "path": "/usr/include/c++/9/bits/hashtable_policy.h", "sources": [], "checksums": [] }, "line": 463 }, { "address": "0x00000000080016fd", "instructionBytes": "66 0f 28 ca", "instruction": "movapd xmm1,xmm2", "location": { "path": "/usr/include/c++/9/bits/hashtable_policy.h", "sources": [], "checksums": [] }, "line": 463 }, { "address": "0x0000000008001701", "instructionBytes": "66 0f 56 c1", "instruction": "orpd xmm0,xmm1", "location": { "path": "/usr/include/c++/9/bits/hashtable_policy.h", "sources": [], "checksums": [] }, "line": 463 }, { "address": "0x0000000008001705", "instructionBytes": "66 0f 2f 05 4b 29 00 00", "instruction": "comisd xmm0,QWORD PTR [rip+0x294b] # 0x8004058", "location": { "path": "/usr/include/c++/9/bits/hashtable_policy.h", "sources": [], "checksums": [] }, "line": 463 }, { "address": "0x000000000800170d", "instructionBytes": "73 07", "instruction": "jae 0x8001716 <std::__detail::_Prime_rehash_policy::_M_bkt_for_elements(unsigned long) const+158>", "location": { "path": "/usr/include/c++/9/bits/hashtable_policy.h", "sources": [], "checksums": [] }, "line": 463 }, { "address": "0x000000000800170f", "instructionBytes": "f2 48 0f 2c c0", "instruction": "cvttsd2si rax,xmm0", "location": { "path": "/usr/include/c++/9/bits/hashtable_policy.h", "sources": [], "checksums": [] }, "line": 463 }, { "address": "0x0000000008001714", "instructionBytes": "eb 1e", "instruction": "jmp 0x8001734 <std::__detail::_Prime_rehash_policy::_M_bkt_for_elements(unsigned long) const+188>", "location": { "path": "/usr/include/c++/9/bits/hashtable_policy.h", "sources": [], "checksums": [] }, "line": 463 }, { "address": "0x0000000008001716", "instructionBytes": "f2 0f 10 0d 3a 29 00 00", "instruction": "movsd xmm1,QWORD PTR [rip+0x293a] # 0x8004058", "location": { "path": "/usr/include/c++/9/bits/hashtable_policy.h", "sources": [], "checksums": [] }, "line": 463 }, { "address": "0x000000000800171e", "instructionBytes": "f2 0f 5c c1", "instruction": "subsd xmm0,xmm1", "location": { "path": "/usr/include/c++/9/bits/hashtable_policy.h", "sources": [], "checksums": [] }, "line": 463 }, { "address": "0x0000000008001722", "instructionBytes": "f2 48 0f 2c c0", "instruction": "cvttsd2si rax,xmm0", "location": { "path": "/usr/include/c++/9/bits/hashtable_policy.h", "sources": [], "checksums": [] }, "line": 463 }, { "address": "0x0000000008001727", "instructionBytes": "48 ba 00 00 00 00 00 00 00 80", "instruction": "movabs rdx,0x8000000000000000", "location": { "path": "/usr/include/c++/9/bits/hashtable_policy.h", "sources": [], "checksums": [] }, "line": 463 }, { "address": "0x0000000008001731", "instructionBytes": "48 31 d0", "instruction": "xor rax,rdx", "location": { "path": "/usr/include/c++/9/bits/hashtable_policy.h", "sources": [], "checksums": [] }, "line": 463 }, { "address": "0x0000000008001734", "instructionBytes": "5d", "instruction": "pop rbp", "location": { "path": "/usr/include/c++/9/bits/hashtable_policy.h", "sources": [], "checksums": [] }, "line": 463 }, { "address": "0x0000000008001735", "instructionBytes": "c3", "instruction": "ret " }, { "address": "0x0000000008001736", "instructionBytes": "f3 0f 1e fa", "instruction": "endbr64 ", "symbol": "std::__detail::_Prime_rehash_policy::_M_state() const", "location": { "path": "/usr/include/c++/9/bits/hashtable_policy.h", "sources": [], "checksums": [] }, "line": 476 }, { "address": "0x000000000800173a", "instructionBytes": "55", "instruction": "push rbp", "location": { "path": "/usr/include/c++/9/bits/hashtable_policy.h", "sources": [], "checksums": [] }, "line": 476 }, { "address": "0x000000000800173b", "instructionBytes": "48 89 e5", "instruction": "mov rbp,rsp", "location": { "path": "/usr/include/c++/9/bits/hashtable_policy.h", "sources": [], "checksums": [] }, "line": 476 }, { "address": "0x000000000800173e", "instructionBytes": "48 89 7d f8", "instruction": "mov QWORD PTR [rbp-0x8],rdi", "location": { "path": "/usr/include/c++/9/bits/hashtable_policy.h", "sources": [], "checksums": [] }, "line": 476 }, { "address": "0x0000000008001742", "instructionBytes": "48 8b 45 f8", "instruction": "mov rax,QWORD PTR [rbp-0x8]", "location": { "path": "/usr/include/c++/9/bits/hashtable_policy.h", "sources": [], "checksums": [] }, "line": 477 }, { "address": "0x0000000008001746", "instructionBytes": "48 8b 40 08", "instruction": "mov rax,QWORD PTR [rax+0x8]", "location": { "path": "/usr/include/c++/9/bits/hashtable_policy.h", "sources": [], "checksums": [] }, "line": 477 }, { "address": "0x000000000800174a", "instructionBytes": "5d", "instruction": "pop rbp", "location": { "path": "/usr/include/c++/9/bits/hashtable_policy.h", "sources": [], "checksums": [] }, "line": 477 } ] }, "seq": 2182 }