Linux: BadMatch fix when not-yet-mapped windows are focused, rdi_from_dwarf & linux_demon, RD_CmdKind_RunExternalDriverTextCommand fixes - #938
Conversation
|
Since my last commit: Fix ELF phdr addressing and DWARF5 relative directory paths
|
|
For my last commit: 2391e11 RD_CmdKind_RunExternalDriverTextCommand always passed any non-flag text in |
|
For my last commit: In rdi_from_dwarf, I noticed emit_line was being reset only when a row passed the "address != 0 && line != 0" filter, so a "DWARF line == 0" marker left it dangling into register only opcodes found later. If one of those made the line non-zero again, a bogus row was added at the address left from the skipped opcode instead of where that line actually began, shifting breakpoint addresses. Clang commonly emits this opcode sequence; gcc doesn't (at least from my tests, it always worked fine). DW_AT_low_pc/high_pc range computation had the address class/constant class branches swapped. Whenever high_pc used a constant class form, the raw value was used as an absolute voff instead of being added to low_pc, truncating the registered address range of the unit, routing any PC past that point to the an empty unit, so line lookups for Also, in disasm, the disassembly view inline source used RDI_SourceFile.normal_full_path, it is lowercased for case insensitive matching, to actually open the file from disk on POSIX I reconstruct the real-case path from the file path node tree instead. |
Added a wm_window_focus check for the window's map_state (XGetWindowAttributes). If the window is already viewable I set the focus immediately; otherwise I set a pending_focus flag on the LNX_WM_Window.
Added MapNotify in wm_get_events case that handles the request once the window is mapped, clears the flag and flushes...