Либо установите $page
в ноль, изменив:
$page = 1;
на:
$page = 0;
Или отобразите переменную перед добавлением 1 к ней:
$condition2 = true;
$page = 1;
while($condition2){
echo $page;
$page++
if($page == 3){
$condition2 = false;
}
}
От человек gdb (1) :
-x file
Execute GDB commands from file file.
Вы могли затем поместить свои точки останова в файл:
break [file:]function
break [file:]function
...
Можно поместить все команды, которые Вы хотите в .gdbinit
файл, который живет в том же каталоге как исполняемый файл, который Вы отлаживаете.
Что-то как:
b somefile.c:128
b otherfile.c:33
Должен работать просто великолепно.
Редактирование: Да, -x
параметр командной строки позволит Вам выполнять произвольные файлы при запуске GDB, но поддержание .gdbinit
файл для каждого проекта означает, что файл выполняется автоматически (без потребности указать имя файла). Кроме того, можно легко добавить определенное для проекта .gdbinit
файл к управлению исходным кодом, что означает, что все члены команды могут использовать те же средства отладки.
Помимо использования внешнего файла, можно также просто сохранить gdb открытым: Если двоичный файл под изменениями gdb, это перезагрузит двоичный файл и библиотеки, не теряя Ваши точки останова в следующий раз, когда Вы работаете.
Или использование:
gdb --command=commands.gdb ./a.out
, где commands.gdb
текстовый файл с Вашими точками останова.
--command
, вероятно, то же как -x
В документации GDB утверждается, что можно использовать команду «сохранить точки останова» и «источник»: http://sourceware.org/gdb/current/onlinedocs/gdb/Save-Breakpoints.html#Save- Точки останова . Однако это не работает на моем gdb (7.1-ubuntu).