Ошибка при попытке отладки в QtProject

Я установил последнюю версию QtProject , так что теперь я могу отлаживать код C++.

При попытке отладки в первый раз я получил эту ошибку:

ptrace: Operation not permitted.

Could not attach to the process. Make sure no other debugger traces this process.
Check the settings of
/proc/sys/kernel/yama/ptrace_scope
For more details, see /etc/sysctl.d/10-ptrace.conf
14
задан 17 January 2013 в 22:15

4 ответа

В версиях Ubuntu после 10.10 вы столкнетесь с этим в более связанных приложениях, таких как QtCreator. Это функция безопасности Ubuntu, которая предотвращает присоединение отладчика к процессам, которые ему не принадлежат.

Это подано как ошибка # 3509 против QtCreator . Чтобы обойти эту проблему, сделайте следующее:

  • временное решение (не переживет перезагрузку):

     echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope
    
  • в файле /etc/sysctl.d/10-ptrace.conf (уже должно существовать), измените значение kernel.yama.ptrace_scope на 0, а затем перезагрузите конфигурацию: sudo sysctl -p.

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

0
ответ дан 17 January 2013 в 22:15

У меня была такая же проблема при запуске проекта в терминале. Просто снимите флажок (или установите флажок - запустить - снять флажок, если по какой-то причине он не установлен) в поле «Проекты» (на левой панели) - «Запуск» - вкладка «Выполнить» - раздел «Выполнить».

0
ответ дан 17 January 2013 в 22:15

Вы можете изменить возможности GDB с помощью

sudo setcap cap_sys_ptrace=eip /usr/bin/gdb

. Возможности man говорят, что cap_sys_ptrace дает право на

Trace  arbitrary  processes  using ptrace(2); apply get_robust_list(2)
to arbitrary processes; inspect processes using kcmp(2).

. См. Также man cap_from_text.

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

0
ответ дан 17 January 2013 в 22:15

Просто откройте QtCreator через Терминал с правами root; это сработало для меня.

sudo qtcreator
0
ответ дан 17 January 2013 в 22:15

Другие вопросы по тегам:

Похожие вопросы: