[gdb/tui] Make assert in tui_find_disassembly_address more strict
authorTom de Vries <tdevries@suse.de>
Mon, 13 Nov 2023 08:31:20 +0000 (09:31 +0100)
committerTom de Vries <tdevries@suse.de>
Mon, 13 Nov 2023 08:31:20 +0000 (09:31 +0100)
commitaba9fa5f4be8c27e07c5330957fff17e4160920b
tree86bc25803e6a8ea6b70b224ce3778512aed47c5f
parente5da53e26f4e3b14c542a0cb65828a3a9e574ca3
[gdb/tui] Make assert in tui_find_disassembly_address more strict

In tui_find_disassembly_address we find an assert:
...
      if (asm_lines.size () < max_lines)
{
  if (!possible_new_low.has_value ())
    return new_low;

  /* Take the best possible match we have.  */
  new_low = *possible_new_low;
  next_addr = tui_disassemble (gdbarch, asm_lines, new_low, max_lines);
  last_addr = asm_lines.back ().addr;
  gdb_assert (asm_lines.size () >= max_lines);
}
...

The comment right above:
...
      /* If we failed to disassemble the required number of lines then the
 following walk forward is not going to work, it assumes that
 ASM_LINES contains exactly MAX_LINES entries.  Instead we should
 consider falling back to a previous possible start address in
 POSSIBLE_NEW_LOW.  */
...
claims that the more strict asm_lines.size () == max_line is required.

Update the assert to reflect this, and move it to after the if because it's
supposed to hold in general, not just when entering the if.

Tested on x86_64-linux.
gdb/tui/tui-disasm.c