Помилка отримання під час спроби налагодження в QtProject


14

Я встановив останню версію 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

У версіях 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.

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


4

У мене була така ж проблема під час запуску проекту в терміналі. Просто зніміть прапорець (або встановіть прапорець - зніміть прапорець, якщо він з якихось причин не встановлений) прапорець "Запустити в терміналі" в розділі "Проекти" (зліва) - вкладка "Виконати" - "Виконати".


Дякуючи, це працювало для мене, налагодження тепер починається у виході програми QTCreators.
квадратборг

Голосування цього, тому що це найпростіше рішення, якщо вам не потрібно бачити вихідний термінал зі своєї програми.
Роб Девіс

0

Ви можете змінити можливості gdb за допомогою

sudo setcap cap_sys_ptrace=eip /usr/bin/gdb

людина можливості говорить, що 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.

Це рішення, яке не видаляється перезавантаженням, але воно також не є абсолютно безпечним. Я відкритий для пропозицій, як це зробити постійно та безпечно.


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.