Głównym sposobem, w jaki znam debugowanie skryptów, jest dodanie -xdo shabang ( #!/bin/bash -x). Ostatnio natknąłem się na nowy sposób, dodając set -euxo pipefailtuż pod shabangiem, jak w: #!/bin/bash set -euxo pipefail Jaka jest główna różnica między dwoma sposobami debugowania? Czy są chwile, kiedy wolisz jeden od drugiego? Jako student …
Napisałem program, który wzywa setuid(0)i execve("/bin/bash",NULL,NULL). Potem zrobiłem chown root:root a.out && chmod +s a.out Kiedy wykonuję ./a.out, otrzymuję powłokę roota. Jednak gdy to zrobię gdb a.out, proces zaczyna się jak zwykły użytkownik i uruchamia powłokę użytkownika. Więc ... czy mogę debugować program root setuid?
Mam nadzieję uzyskać sugestie oparte na doświadczeniu, jak przejść do debugowania problemu zawieszenia do pamięci RAM. Porady specyficzne dla mojej sytuacji (wyszczególnione poniżej) byłyby świetne, ale interesują mnie również ogólne porady dotyczące rozwiązywania takich problemów. Problem: Często, gdy próbuję zawiesić maszynę, utknie ona w stanie „nie zawieszony, ale nie przebudzony”. …
Znam strace, które jest bardzo przydatne do oglądania wywołań systemowych. Czy istnieje odpowiednik, który może śledzić połączenia z bibliotekami zewnętrznymi? Na przykład próbuję debugować pewne nieprawidłowe zachowanie SSLeay za pomocą pliku binarnego innej firmy, dla którego nie mogę uzyskać dostępu do kodu (i kto nie odpowiada). Wydaje mi się, że …
Kiedy używam polecenia GDB add-symbol-filedo załadowania symbolu, GDB zawsze pyta mnie „y lub n”, jak poniżej: gdb> add-symbol-file mydrv.ko 0xa0070000 add symbol table from file "mydrv.ko" at .text_addr = 0xa0070000 (y or n) Jak sprawić, by nie pytał i wykonywał po cichu?
Czy w świecie * nix istnieje sposób, aby skrypt powłoki zawierał informacje o tym, który program go wykonał? Przykład: /path/to/script1 /path/to/script_xyz w tym urojonym scenariuszu script_xyzmiałby informacje o ścieżce ( /path/to/script1) lub proces PID podmiotu, który go wykonał. Uwaga: jestem ciekawy różnych rozwiązań i podejść, nie spodziewam się, że to …
Z góry przepraszam, jeśli ten post jest trochę gęsty / niechlujny, ale mam trudności z jego lepszym sformułowaniem ... Zasadniczo chciałbym przestudiować, co dzieje się podczas zapisu na dysku twardym i chciałbym wiedzieć: Czy moje rozumienie poniżej jest prawidłowe - a jeśli nie, to gdzie się mylę? Czy istnieje lepsze …
Przechwytywanie TCP / IP i UDP może być wykonane przy użyciu tcpdump/ dumpcapi tworzy plik pcap / pcapng, który można przekazać do Wireshark w celu dalszej analizy. Czy istnieje podobne narzędzie dla nazwanych gniazd domeny Unix? (Ogólne rozwiązanie, które działa dla gniazd abstrakcyjnych, również byłoby fajne.) straceponieważ-nie jest wystarczające, filtrowanie …
Zainspirowany tym pytaniem, zatytułowanym: Kiedy wbudowane polecenia są ładowane do pamięci , próbując na nie odpowiedzieć, wypróbowałem następujące polecenie i byłem nieco zaskoczony, że nie mogłem go uruchomić: $ strace cd $HOME Czy istnieje metoda, za pomocą której mogę uruchomić strace dla wbudowanych poleceń Bash?
Czy istnieje odpowiednik działania -Ti -Uopcji trussnarzędzia Solaris w systemie Linux. Służą one do określenia funkcji systemowej ( -T) lub funkcji bibliotecznej ( -U), która wywołana przez śledzoną aplikację spowoduje jej zatrzymanie. Lub, inaczej mówiąc, chciałbym, aby każdy proces uruchamiany przez śledzoną aplikację został zatrzymany (tak jakby został zabity przez …
Czy istnieje sposób na uzyskanie zrzutu podstawowego (lub czegoś podobnego) dla procesu bez faktycznego zabijania procesów? Mam wielowątkowy proces Pythona działający w systemie osadzonym. I chcę być w stanie uzyskać migawkę procesu w normalnych warunkach (tj. Z innymi procesami wymaganymi do uruchomienia), ale nie mam wystarczającej ilości pamięci, aby połączyć …
Jeśli aplikacja ulegnie awarii w systemie Windows, możemy sprawdzić Podgląd zdarzeń w narzędziach administracyjnych, aby zobaczyć, co się zawiesiło. Czasami zawiera przydatne informacje, których inni nie, ale to dopiero początek. W Linuksie, jeśli aplikacja (jakakolwiek) ulega awarii, gdy zaczyna się śledzić, co się stało? Czy istnieje np. Jakiś dziennik centralny …
Otrzymuję te komunikaty o błędach za każdym razem, gdy ponownie uruchamiam komputer (i kilka innych nie wiem, jak zachować, gdy się wyłącza, ale jak dotąd nie dotyczą one tego pytania): [gorre@uplink ~]$ journalctl -p err..alert ... -- Reboot -- May 11 21:47:03 uplink kernel: ACPI BIOS Error (bug): Failure looking …
Mam skrypt, launch.shktóry wykonuje się jako inny użytkownik, aby tworzyć pliki z poprawnym właścicielem. Chcę przekazać -x do tego wywołania, jeśli zostało ono pierwotnie przekazane do skryptu if [ `whoami` == "deployuser" ]; then ... bunch of commands that need files to be created as deployuser else echo "Respawning myself …
Próbuję debugować problem związany z włóczęgą lub VirtualBoxem (zobacz taiga-włóczęga nie zapewnia działającego środowiska tajgi # 21 ). Polecenie VAGRANT_LOG=debug vagrant up --debugdrukuje wiele, prawdopodobnie przydatnych informacji. Gdzie jest jednak przechowywany ten dziennik? Edycja: VAGRANT_LOG=debug vagrant up jest w rzeczywistości taki sam jak vagrant up --debug. Pracuję na / z: …
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.