Для полноты, сочетание двух наиболее употребительных ответов ( 1 , 2 ) в Свифте:
override func willMoveToParentViewController(parent: UIViewController?) {
super.willMoveToParentViewController(parent)
if parent == nil {
// view controller is popping
}
}
Некоторые примеры некоторых способностей, которые отладчик IDE даст Вам по сообщениям трассировки в коде:
, Таким образом, операторы печати (обычно) статичны , и необходимо будет перекомпилировать для получения дополнительной информации, если исходные операторы не были детализированы достаточно. IDE снимает этот статический барьер, давая Вам динамичный инструментарий под рукой.
, Когда я сначала начал кодировать, я не мог понять то, чем было грандиозное предприятие с отладчиками, и я думал, что мог достигнуть чего-либо с трассировкой (предоставленный, который был на Unix, и отладчик был GDB). Но как только Вы изучаете, как правильно использовать графический отладчик, Вы не хотите возвращаться к операторам печати.
Это не просто отлаживает. IDE помогает Вам создать лучшее программное обеспечение быстрее большим количеством способов:
я мог продолжить.
Этот ровный реальный вопрос от настоящего программиста?
Любой, кто провел даже 5 минут, отлаживая с операторами печати и отлаживая с IDE - он ПРОИЗОЙДЕТ с ним без ровного выяснения!
В дополнение к большой части того, что сказали другие плакаты, мне действительно нравится ступать через одну строку за один раз наряду с компьютером, поскольку это вынуждает меня думать об одной строке за один раз. Часто я буду ловить ошибку, даже не смотря на значения переменных просто, потому что я вынужден посмотреть на нее, поскольку я нажимаю кнопку 'следующей строки'. Однако я не думаю, что мой ответ поможет Вам, счету, потому что у Вас, вероятно, уже есть этот навык.
До изучения ресурсов идут, я не использовал никого - я просто исследую все меню и опции.
Поскольку кто-то сказал выше: Отладчик! = IDE.
gdb и (назад в день) (автономные) TurboDebugger работают просто великолепно для языков, которые они поддерживают [редактор], спасибо. (или еще более старая технология: отладчик Clipper связался в сам xBase исполняемый файл) - ни один из них не потребовал IDE
кроме того, хотя C / ++ кодирование более редко, printf операторы иногда маска от самой ошибки, Вы пытаетесь найти! (проблемы инициализации в автоматическом Варе на стеке, например, или выделение памяти / выравнивание)
Наконец, как другие заявили, можно использовать обоих. Некоторые проблемы оперативного выхода почти требуют печати, или по крайней мере разумного "*video_dbg = (is_good? '+': '-')"; где-нибудь в видеопамять. Мой возраст показывает, это находилось под DOS:-)
TMTOWTDI
С отладчиком IDE Вы видите значения ВСЕХ переменных в текущей области (полностью стек вызовов) каждый раз, когда Вы останавливаете выполнение.
операторы печати могут быть большими, но вывести, такая информация на экран в любом данном месте может произвести целый партия операторов печати.
кроме того, много отладчиков IDE позволяют Вам ввести и оценить методы и оценить участников, в то время как Вы останавливаетесь, какие дальнейшие увеличения количество операторов печати необходимо было бы сделать.
я действительно чувствую, что отладчики лучше для некоторых языков, чем для других однако...
Мое общее мнение - то, что отладчики IDE абсолютно, удивительно замечательны для управляемых языков как Java или C#, довольно полезны для C++ и не очень полезны для языков сценариев как Python (но могло случиться так, что я просто еще не попробовал хороший отладчик ни за какие языки сценариев).
я абсолютно люблю отладчик в ИДЕЕ IntelliJ, когда я делаю разработку Java. Я просто использую операторы печати, когда я использую Python.
отладчик А может присоединить к рабочему процессу
Часто легче отладить поточный код от отладчика
Это - то, что я использую больше всего на окнах отладки VS.NET:
, Таким образом, это высказывает мне мнение на 360 градусов состояния моего кода выполнения, не только маленькое окно.
Никогда не находил книгу, преподавая этот вид материала, но с другой стороны, это, кажется, довольно просто, это - в значительной степени WYSIWYG.
Я лично чувствую, что ответ так прост, как "Интегрированный отладчик/IDE дает Вам богатство различной информации быстро без потребности в перфорации в команды. Информация имеет тенденцию быть там перед Вами без Вас, не имеют, говорят его, что показать Вам.
простота , в котором может быть получена информация, - то, что делает их лучше, чем просто отладка командной строки или отладка "printf".
Поскольку отладка многопоточных приложений с операторами печати сведет Вас с ума. Да можно все еще сделать это с операторами печати, но Вам были бы нужны многие из них, и распутывание последовательной печати из операторов для эмуляции многопоточного executiong будет долго занимать много времени.
Человеческие мозги являются только однопоточными, к сожалению.
Так как Вы попросили подсказки по книгам... Насколько отладка Windows идет, у John Robbins есть несколько выпусков хорошей книги по отладке Windows:
Приложения Отладки для Microsoft.NET и Примечание Microsoft Windows
, что новый выпуск ( Отладка Приложения Microsoft.NET 2.0 ) является.NET только, таким образом, Вы могли бы хотеть более старый (как в первой ссылке), если Вы хотите отладку собственного кода (это покрывает и.NET и собственный компонент).
Одна вещь, что я удивлен, что не видел в другом ответе, состоит в том, что 2 метода отладки не взаимоисключающие .
printf
отладка может работать вполне приятно даже при использовании стандартного отладчика (ли базирующийся IDE или не). В особенности с платформой журналирования, таким образом, можно оставить все или большую часть в выпущенном продукте для помощи с диагностированием потребительских проблем.
, Как отмечено в в значительной степени всех других ответах здесь, ключевая хорошая вещь о стандартном отладчике состоит в том, что он позволяет Вам более легко исследовать (и потенциально изменяться) детали состояния программы. Вы не должны знать впереди, на что Вы могли бы хотеть посмотреть - это все доступно под рукой (более или менее).
Одна причина использовать IDE могла бы состоять в том, что современные IDE поддерживают больше, чем простые точки останова. Например, Visual Studio предлагает следующие усовершенствованные функции отладки:
кроме того, при использовании отладчика, Вы не должны будете удалять все свои операторы печати, как только Вы закончили отлаживать.
Я не разрабатывал в течение почти 20 лет, но я нахожу, что использование IDE / отладчик могу:
history.js
подход кажется больше viable
для получения его работающий быстро). Большое спасибо, приятель!:-)
– Dr.Kameleon
13 August 2012 в 11:06
Первое, что пришло на ум:
Вот одна вещь, которую Вы определенно не можете отладить с оператором "печати", который является, когда клиент приносит Вам дамп памяти и говорит "Вашу разрушенную программу, можно ли сказать мне почему?"
отладчик IDE позволяет Вам изменить значения переменных во времени выполнения.
отладчик IDE позволяет Вам видеть значение переменных, Вы не знали, что хотели видеть, когда выполнение началось.
отладчик IDE позволяет Вам видеть стек вызовов и исследовать состояние переданных странных значений функции. (думайте, что эта функция вызвана от сотен мест, Вы не знаете, куда эти странные значения прибывают из)
, отладчик IDE позволяет Вам условно повредить выполнение в любой точке в коде, на основе условия, не номера строки.
отладчик IDE позволит Вам исследовать состояние программы в случае необработанного исключения вместо того, чтобы просто гадить.
Преимущества отладчика по printf ( примечание не отладчик IDE, но любой отладчик )
Могут установить контрольные точки. Это - один из моих любимых способов найти, что повреждения памяти
Могут отладить двоичный файл, который Вы не можете перекомпилировать в данный момент
, Может отладить двоичный файл, который занимает много времени для перекомпиляции
, Может заменить переменные на лету
, Может вызвать функции на лету
, не имеет проблемы, где отладка statemenets не сбрасывается, и следовательно синхронизирующий проблему не может быть отлаженная справка отладчиков acuratly
с дампами ядра, операторы печати не делают'
Я думаю, отлаживая использующий операторы печати, потерянное искусство, и очень важный для каждого разработчика для изучения. Как только Вы знаете, как сделать это, определенные классы ошибок становятся намного легче отладить тот путь, чем через IDE. У программистов, которые знают эту технику также, есть действительно хорошее чувство того, что является полезной информацией, чтобы вставить сообщение журнала (не говоря уже о, Вы на самом деле закончите тем, что читали журнал) для неотладки целей также.
Однако действительно необходимо знать, как использовать неродной через отладчик, с тех пор для различного класса ошибок это - легче ПУТЬ. Я оставлю его до других превосходных ответов уже отправленным для объяснения почему:)
history.js
работы как очарование - так, в основном никакая потребность в любом другом примере.;-)
– Dr.Kameleon
13 August 2012 в 11:20
Я использовал для отладки и печатные формы, и IDE, и я бы предпочел отладку с помощью IDE. Единственный случай, когда это не работает, - это критические ситуации (например, отладка онлайновых игр), когда вы засоряете код операторами печати, а затем смотрите на файлы журнала после того, как все пошло ужасно неправильно. Затем, если вы все еще не можете разобраться, добавляете больше отпечатков и повторяете.
Просто хотел упомянуть полезную особенность консольного отладчика по сравнению с printf и отладчиком в IDE.
Вы можете подключиться к удаленному приложению (очевидно, скомпилированному в режиме DEBUG) и просмотреть его состояние, сбрасывая вывод отладчика в файл с помощью утилиты POSIX tee
. По сравнению с printf, вы можете выбирать, куда выводить состояние во время выполнения программы.
Это очень помогло мне, когда я отлаживал приложения Adobe Flash, развернутые в агрессивной среде. Вам просто нужно определить некоторые действия, которые выводят требуемое состояние в каждой точке останова, запустить консольный отладчик командой fdb | tee output.log
и пройтись по некоторым точкам останова. После этого вы можете распечатать журнал и проанализировать информацию путем тщательного сравнения состояния в разных точках останова.
К сожалению, эта возможность [запись в файл] редко доступна в отладчиках GUI, что заставляет разработчиков сравнивать состояние объектов в голове.
Кстати, я считаю, что перед тем, как использовать отладчик, нужно спланировать, где и что отлаживать.