Меньшие журналы
Другой несовершеннолетний, про для хранимых процедур, который не был упомянут: когда дело доходит до трафика SQL основанный на SP доступ к данным генерирует очень меньше трафика. Это становится важным при контроле трафика для анализа и представляющий - журналы будут намного меньше и читаемы.
После небольшой игры с отладчиком это то, что я обнаружил.
Вы можете установить точку останова в objc_msgSend
с условием точки останова для первого аргумента равным нулю (получатель):
objc_msgSend
* (int *) ($ esp + 4) == 0
Когда вы запустите свой исполняемый файл, он очень часто ломается, так как очень часто отправляются сообщения с нулевым значением. Чтобы получить обзор того, что В этом случае вы можете дополнительно настроить точку останова:
p (char *) * (int * ) ($ esp + 8)
в поле команды Теперь, когда вы продолжаете выполнение, вы увидите все имена сообщений (отправляемые в nil) в консоли отладчика.
Все вышеперечисленное работает только на Intel Mac (32-битное Cocoa или Cocoa Touch в симуляторе). Архитектуры PPC или ARM используют другие имена регистров и соглашения о вызовах. Я оставляю это вам в качестве упражнения, чтобы узнать, как заставить это работать на этих платформах;)
из всплывающего окна. p (char *) * (int *) ($ esp + 8)
в поле команды Теперь, когда вы продолжите выполнение, вы увидите все имена сообщений (отправляемые на ноль) в консоли отладчика.
Все вышеперечисленное работает только на компьютерах Intel Mac (32 бита Cocoa или Cocoa Touch в симуляторе). Архитектуры PPC или ARM используют другие имена регистров и соглашения о вызовах. Я оставляю это вам в качестве упражнения, чтобы узнать, как заставить это работать на этих платформах;)
из всплывающего окна. p (char *) * (int *) ($ esp + 8)
в поле команды Теперь, когда вы продолжите выполнение, вы увидите все имена сообщений (отправляемые на ноль) в консоли отладчика.
Все вышеперечисленное работает только на компьютерах Intel Mac (32 бита Cocoa или Cocoa Touch в симуляторе). Архитектуры PPC или ARM используют другие имена регистров и соглашения о вызовах. Я оставляю это вам в качестве упражнения, чтобы узнать, как заставить это работать на этих платформах;)
вы увидите все имена сообщений (которые отправляются в nil) в консоли отладчика.Все вышеперечисленное работает только на Intel Mac (32-битное Cocoa или Cocoa Touch в симуляторе). Архитектуры PPC или ARM используют другие имена регистров и соглашения о вызовах. Я оставляю это вам в качестве упражнения, чтобы узнать, как заставить это работать на этих платформах;)
вы увидите все имена сообщений (которые отправляются в nil) в консоли отладчика.Все вышеперечисленное работает только на Intel Mac (32-битное Cocoa или Cocoa Touch в симуляторе). Архитектуры PPC или ARM используют другие имена регистров и соглашения о вызовах. Я оставляю это вам в качестве упражнения, чтобы узнать, как заставить это работать на этих платформах;)
В качестве альтернативы вы можете использовать dtrace:
Использование dtrace для записи трассировки сообщений в ноль
И это также можно сделать в Instruments .