You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When a breakpoint is inserted at an instruction, the subsequent instructions are erroneously decoded by LLDB. Possible reason could be that while decoding instructions (when a breakpoint is also inserted), LLDB should substitute the complete original instruction before decoding. Instead the dissassembly is decoded correctly till the breakpoint instruction but since the breakpoint instruction is basically modifying 1 byte of an already existing instruction, LLDB interprets the rest of the bytes as new instructions.
Extended Description
When a breakpoint is inserted at an instruction, the subsequent instructions are erroneously decoded by LLDB. Possible reason could be that while decoding instructions (when a breakpoint is also inserted), LLDB should substitute the complete original instruction before decoding. Instead the dissassembly is decoded correctly till the breakpoint instruction but since the breakpoint instruction is basically modifying 1 byte of an already existing instruction, LLDB interprets the rest of the bytes as new instructions.
Disassembly by GDB
0x0000000000400922 <+0>: push %rbp
0x0000000000400923 <+1>: mov %rsp,%rbp
0x0000000000400926 <+4>: sub $0x30,%rsp
0x000000000040092a <+8>: mov %rdi,-0x18(%rbp)
0x000000000040092e <+12>: mov %esi,-0x1c(%rbp)
0x0000000000400931 <+15>: mov %edx,-0x20(%rbp)
0x0000000000400934 <+18>: mov %ecx,-0x24(%rbp)
=> 0x0000000000400937 <+21>: mov -0x1c(%rbp),%eax
0x000000000040093a <+24>: cmp -0x20(%rbp),%eax
0x000000000040093d <+27>: jle 0x40094b <binary_search(int*, int, int, int)+41>
0x000000000040093f <+29>: movl $0xffffffff,-0x8(%rbp)
0x0000000000400946 <+36>: jmpq 0x4009d9 <binary_search(int*, int, int, int)+183>
Corresponding Disassembly by LLDB
-> 0x400937 <+21>: int3
0x400938 <+22>: inb $0x3b, %al
0x40093b <+25>: loopne 0x4009bc ; <+154> at test.cpp:34
0x40093e <+28>: orb $-0x39, %al
0x400940 <+30>: clc
As it can be seen in the disassembly by LLDB, after breakpoint at <+21> the instructions are not correctly decoded.
Steps to reproduce
The text was updated successfully, but these errors were encountered: