ladybird/Libraries
Itamar f9d62fd5e5 LibDebug: Make sure to not single step the program twice
After hitting a breakpoint, we single step the program to execute the
instruction we breaked on and re-enable the breakpoint.
We also single step the program when the user of LibDebug returned a
DebugDecision::SingleStep.

Previously, if we hit a breakpoint and then were asked to to a
DebugDecision::SingleStep, we would single step twice.

This bug can actually crash programs, because it might cause us to
skip over a patched INT3 instruction in the second single-step.

Interestingely enough, this bug manifested as functrace crashing
certain programs: after hitting a breakpoint on a CALL instruction,
functrace single steps the program to see where the CALL jumps to
(yes, this can be optimized :D). functrace crashed when a CALL
instruction jumps to another CALL, because it inserts breakpoints on CALL
instructions, and so the INT3 in the 2nd CALL was skipped over, and we
executed garbage :).

This commit fixes this by making sure not to single-step twice.
2020-05-24 10:42:21 +02:00
..
LibAudio Build: Switch to CMake :^) 2020-05-14 20:15:18 +02:00
LibC LibC: Move ssize_t from <stddef.h> to <sys/types.h> 2020-05-23 17:03:41 +02:00
LibCore Build: Make Lagom build under macOS (#2341) 2020-05-23 15:31:30 +02:00
LibCrypto Build: Switch to CMake :^) 2020-05-14 20:15:18 +02:00
LibDebug LibDebug: Make sure to not single step the program twice 2020-05-24 10:42:21 +02:00
LibDesktop LaunchServer: Discover handlers from *.af files, allow launching based on a known handler 2020-05-18 11:27:27 +02:00
LibELF Kernel: Absorb LibBareMetal back into the kernel 2020-05-16 12:00:04 +02:00
LibGemini LibGemini: Implement rendering text/gemini documents to HTML 2020-05-17 16:35:42 +02:00
LibGfx LibGfx: Font, extend fonts to 384 character to support LatinExtendedA 2020-05-21 01:19:42 +02:00
LibGUI LibGUI: Use word breaks to intelligently navigate a TextEditor 2020-05-24 02:15:21 +02:00
LibHTTP ProtocolServer: Support request headers 2020-05-21 12:27:42 +02:00
LibIPC Build: Switch to CMake :^) 2020-05-14 20:15:18 +02:00
LibJS Browser: Add JS Console 2020-05-24 02:20:08 +02:00
LibLine LibLine: Default to resetting styles when a cell has no styles set 2020-05-23 17:05:18 +02:00
LibM Revert "Build: Include headers from LibC, LibM, and LibPthread with -isystem" 2020-05-20 16:24:26 +02:00
LibMarkdown Build: Switch to CMake :^) 2020-05-14 20:15:18 +02:00
LibPCIDB Build: Switch to CMake :^) 2020-05-14 20:15:18 +02:00
LibProtocol ProtocolServer: Support request headers 2020-05-21 12:27:42 +02:00
LibPthread Revert "Build: Include headers from LibC, LibM, and LibPthread with -isystem" 2020-05-20 16:24:26 +02:00
LibTextCodec Build: Switch to CMake :^) 2020-05-14 20:15:18 +02:00
LibThread Build: Switch to CMake :^) 2020-05-14 20:15:18 +02:00
LibTLS LibTLS: Do not call on_tls_finished until the client has read app data 2020-05-21 01:21:39 +02:00
LibUnwind LibUnwind: Create UnwindBase.h to capture the EH ABI in code 2020-05-14 08:50:10 +02:00
LibVT LibVT: Pass the handler name to Launcher::open_url to control what gets launched 2020-05-18 11:27:27 +02:00
LibWeb LibWeb: Improve support for white-space CSS property (#2348) 2020-05-24 09:49:02 +02:00
LibX86 Build: Switch to CMake :^) 2020-05-14 20:15:18 +02:00
CMakeLists.txt Revert "LibC: Implement Itanium C++ ABI for static variable guards" 2020-05-20 16:24:26 +02:00