// you’re reading...

Software

Gdb: все комманды на одном листе

  • Run, Kill, Stop
    • r | run → стартуем
    • kill → убиваем текущий процесс
    • Ctrl+c → прерываем работу
    • q | quit → выход из gdb
  • Breakpoints / Watchpoints
    • b | break ( <функция> | <файл>:<строка> | <адрес функции> ) → поставить breakpoint
      • возможность установки breakpoint‘а  на адрес функции очень полезна, когда надо попасть в одну из множества копий одной функции (например, статическая инлайн функция, объявленная в заголовочном файле)
    • <выражение> if <условие> → поставить условный breakpoint, аналогично установке cond для этого breakpoint‘a
    • tb | tbreak → поставить breakpoint который сработает только 1 раз, а затем будет удален
    • cond <N> <условие> → установить условие срабатывания breakpoint‘a номер N
    • ( watch | rwatch | awatch ) <выражение> → установить watchpoint который сработает, если значение по адресу выражение ( изменяется | читается | читается/изменяется )
      • например: (gdb) watch *((int*)0x0B0B0B) → следить за значением по адресу 0x0B0B0B
    • info brakepoints  показать информацию о всех brakepoint‘ах и watchpoint‘ах
    • disable <N> → выключить brakepoint или watchpoint под номером N
    • d | delete <список номеров> ] → удалить breakpoint’ы и watchpoint’ы с номерами из списка, если список пуст — удалить все
    • clear ( <функция> | <файл:строчка> ) → удалить breakpoint(s) привязанные к функции/файлу
  • Continuing and Stepping
    • n | next → следующий шаг выполнения (следующая строчка кода)
    • s | step → углубляемся в стек выполнения (заходим внутрь вызываемых функций)
    • c | continue → продолжаем работу программы
  • Backtrace
    • bt → показать Call stack текущий точки
    • up → подняться на одну функцию вверх в текущем Call stack
    • down → вниз по Call stack‘у на одну функцию
  • Print context: lines, variables, expressions, functions
    • l | list→ показать исходник вокруг текущей строчки
    • p <переменная> | <выражение> → показать значение переменной, памяти, выражения
    • set <переменная> = <значение> → установить <значение> для <переменной>
    • info ( locals | args ) → показать значения ( локальных переменных | аргументов функции )
    • call <функция> → вызвать функцию func()
  • Directories
    • cd <dir> → перейти в директорию dir
    • pwd → показать текущую директорию
    • dir | directory <dir> → добавить директорию dir в список где ищутся исходные файлы
  • Threads
    • set follow-fork-mode ( parent child ) → куда идти при создании (fork) нового процесса: parent - оставаться в родителе, child - идти за сыновьим процессом

Discussion

Ads

Похожие статьи