gdb: Как приостановить выполнение цикла?

Я пишу программный рендерер на g ++ под mingw32 в Windows 7, используя NetBeans 7 в качестве моего IDE.

Мне нужно было профилировать это в последнее время, и эта потребность достигла критической массы теперь, когда я уже не закладываю структуру. Я огляделся, и для меня этот ответ показывает самые многообещающие возможности одновременной кроссплатформенности и простоты.

Суть этого подхода заключается в том, что, возможно, самый простой (и во многих отношениях наиболее точный) способ профилирования / оптимизации - это просто время от времени напрямую выполнять выборку из стека, останавливая выполнение ... К сожалению, NetBeans не будет паузы. Итак, я пытаюсь выяснить, как сделать эту выборку напрямую с помощью gdb.

Я мало что знаю о GDB. Что я могу сказать из справочных страниц, так это то, что вы устанавливаете точки останова до запуска вашего исполняемого файла. Это мне не помогает.

Кто-нибудь знает простой подход к получению GDB (или других инструментов GNU) для:

  1. Образец стека, когда я так говорю (предпочтительно)
  2. Взять целую кучу образцов через случайные промежутки времени в течение заданного периода

... указать мою заявленную конфигурацию?

34
задан Community 23 May 2017 в 11:47
поделиться