Я - индивидуальный магазин; у меня есть и удаленный сервер и локальный сервер.
я использую локальный сервер для быстрой разработки прототипа и цикла начального развития, где я вношу много изменений и потребности протестировать их быстро. Когда это дойдет до примерно-альфа-стадии, я настрою пользовательский подхост к проекту и развернусь к моему серверу. Существуют определенные функции, которые просто не могут быть протестированы локально - т.е. e-mail-based регистрация пользователя - и таким образом, эти функции разрабатываются на удаленном сервере. Так как это является МОИМ, и не реальное развертывание, это все еще главным образом без задержки. Так как у меня есть VPS, я имею полный контроль над средой разработки на обеих машинах.
Используйте условную точку останова, которая проверяет первый параметр. В 64-битных системах x86 условие будет следующим:
(gdb) b write if 1 == $ rdi
В 32-битных системах это более сложно, потому что параметр находится в стеке, а это означает, что вам нужно для преобразования $ esp в int * и индексации параметра fd. Стек в этой точке имеет адрес возврата, длину, буфер и, наконец, fd.
Это сильно зависит от аппаратных платформ.
С помощью gdb 7.0 можно установить условную точку останова на syscall write():
(gdb) catch syscall write
Catchpoint 1 (syscall 'write' [4])
(gdb) condition 1 $ebx==1
$ebx содержит первый параметр syscall - здесь номер FD
.