W wersjach Ubuntu po 10.10 napotkasz to w bardziej powiązanych aplikacjach, takich jak QtCreator. Jest to funkcja bezpieczeństwa Ubuntu, która uniemożliwia debugerowi dołączenie do procesów, które nie są jego własnością.
Jest to zgłaszane jako błąd # 3509 przeciwko QtCreator . Aby obejść ten problem, wykonaj następujące czynności:
rozwiązanie tymczasowe (nie przetrwa ponownego uruchomienia):
echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope
W pliku /etc/sysctl.d/10-ptrace.conf
(powinien już istnieć), zmień wartość kernel.yama.ptrace_scope
na 0
, a następnie przeładować konfigurację: sudo sysctl -p
.
Bezpośrednio publikuję tymczasowe rozwiązanie, ponieważ prawdopodobnie nie chcesz, aby ta funkcja była wyłączona na zwykłym komputerze ze względów bezpieczeństwa.
Możesz zmienić możliwości gdb za pomocą
Możliwości man mówi cap_sys_ptrace daje prawo
Zobacz także man cap_from_text.
Jest to rozwiązanie, które nie jest usuwane podczas ponownego uruchamiania, ale nie jest również całkowicie bezpieczne. Jestem otwarty na sugestie, jak to zrobić na stałe i bezpiecznie.
źródło
Wystarczy otworzyć QtCreator za pomocą terminala z uprawnieniami administratora; zadziałało dla mnie.
źródło