Ответ 1
Использовать режим TUI gdb http://sourceware.org/gdb/onlinedocs/gdb/TUI-Overview.html#TUI-Overview Вы можете войти или выйти из режима TUI с привязкой клавиш C-x A.
Я могу согласиться с gdb, но я должен дать команду "list" каждый раз, когда хочу увидеть, где я нахожусь в исходном коде.
(gdb) next
351 int right = get_variable(right_token, right_id);
(gdb) list
346 op = "<>";
347 right_id = parse_id_or_crash();
348 }
349 Token * right_token = tokens[parser_index - 1];
350 int left = get_variable(left_token, left_id);
351 int right = get_variable(right_token, right_id);
352 if (op == "<")
353 return left < right;
354 if (op == ">")
355 return left > right;
Было бы здорово, если бы gdb автоматически перечислил исходный код после каждого шага. Было бы замечательно, если бы gdb мог указать, где в исходном коде я (например, с "- > " или что-то еще). Видя только одну строку кода за раз, я немного клаустрофобию.
Использовать режим TUI gdb http://sourceware.org/gdb/onlinedocs/gdb/TUI-Overview.html#TUI-Overview Вы можете войти или выйти из режима TUI с привязкой клавиш C-x A.
Для этого можно использовать макрос GDB:
(gdb) def n
Type commands for definition of "n".
End with a line saying just "end".
>next
>list
>end
Если вы хотите, чтобы стрелка указывала на текущую строку, вы можете вместо этого использовать внешний интерфейс GDB (например, M-x gdb
в Emacs).
hook-stop
define hook-stop
l
end
Doc: https://sourceware.org/gdb/current/onlinedocs/gdb/Hooks.html
Кроме того, существует псевдо-команда "остановка". Определение ( "hook-stop" ) приводит к тому, что связанные команды выполняются каждый раз, когда выполнение останавливается в вашей программе: перед выполнением команд точки останова отображаются распечатки или распечатывается рамка стека.
Выучено из: fooobar.com/info/216810/...
Выделите текущую строку
Это единственное, что отсутствует, чтобы полностью полностью заменить режим багги -tui
.
В настоящее время это невозможно без сценариев Python: https://sourceware.org/bugzilla/show_bug.cgi?id=21044
С помощью скриптов Python я в настоящее время использую: https://github.com/cyrus-and/gdb-dashboard
Смотрите также: Как выделить и цвет gdb-вывода во время интерактивной отладки?