Table of Contents
Zaktualizowano
Mam nadzieję, że ten przewodnik po poradach pomoże ci, gdy zobaczysz qemu arm unix jak debugowanie.
QEMU byłoby świetnym narzędziem do użycia zawsze, gdy potrzebujesz debugować jądro. takIstnieje wiele przepisów na to na stronie, a ja wymieniłem prawie żadnych przydatnych na najważniejszym końcu artykułu w celach informacyjnych. Wolimy udostępniać kroki debugowania jądra, ale wielu z nas skupia się na schematach aarch64, ponieważ niektóre z kroków dla tego typu mogą nieznacznie różnić się od system jako całość. Zbuduj Najpierw katalog do pracy, a następnie uruchom następujące polecenia, aby utworzyć drogie wydruki papierowe: Następnie uzyskaj działający obraz QEMU. Używamy tego konkretnego obrazu ie8, który stworzyliśmy wcześniej. Być może możemy wspomnieć, że nasza procedura polega na zbudowaniu konkretnego jądra od zera i przeniesieniu takiego tatuażu do QEMU. Tak więc pierwszy krok można by opisać w taki sposób, aby faktycznie powstał ich obraz QEMU. Załóżmy, że możesz już mieć obraz, którego chcesz użyć. W przeciwnym razie zapoznaj się z naszymi artykułami: Preferujemy pierwszą metodę używającą LISA-QEMU, ponieważ mamy również naprawdę zmodyfikowany skrypt do automatycznej instalacji jądra za pomocą każdego z naszych obrazów VM. Nie Ale bądź spokojny, jeśli ty i twoja rodzina myślicie o pójściem w inną stronę, mój partner, ponieważ pokażę ci wszystkie kroki, głównie dlatego, że dobrze! Masz kilka opcji. Jednym z nich będzie ręczne pobranie obrazu instalacyjnego i tokena lub użycie skryptów LISA-QEMU, aby go zainstalować. Polecenie pobierania poniżej polecenia użyje obrazu w procesie prawnym. Chciałbyś użyć późniejszych instrukcji, aby pobrać tatuaż, ale scp zawiera jądro (prawdopodobnie plik .debbie) i instaluje je ręcznie za pomocą deb -i tak naprawdę Zazwyczaj do obsługi QEMU wraz z jądrem potrzebny jest obraz jądra (utworzony publicznie), obraz initrd (utworzony po zainstalowaniu jednego konkretnego typu jądra w obrazie) oraz obraz programu operacyjnego (utworzony powyżej). Pamiętaj, że wytyczne zaczynają się od surowego obrazu. W tej wskazówce, jeśli masz qcow2, najpierw użyj qemu-img, aby przekonwertować go na surowy.Na przykład: Poniżej możesz zamontować obraz tak, aby pliki były całkowicie powtarzane. W takim przypadku musisz skopiować określony initrd. Następny jest rdzeń sneakersowy, który stworzyłeś za pomocą initrd. Zauważ, że jądro, które utworzyłeś, można znaleźć pod adresemŁuk / ramię64 / but / obraz. Ta linia poleceń wyświetla koncepcję jądra z initrd oraz obraz techniki operacyjnej. Może zajść potrzeba zmiany niektórych argumentów „root = / dev / vda1”. To mówi jądru, gdzie uzyskać dostęp do partycji startowej. Może się to różnić w zależności od tego, co niewątpliwie znajduje się na obrazie maszyny wirtualnej. -s specifierPozwala QEMU na użycie większości TCP mov: 1234 Przed debugowaniem popraw swój ~ / .gdbinit w następujący sposób: Uruchom wszystkie debuggery w innym oknie.Zauważ, że jeśli korzystasz z hosta aarch64 x86, będziesz musiał użyć gdb-multiarch do debugowania (sudo apt-get gdb-multiarch). W poniższej procedurze prawnej znajdujemy się na jednym konkretnym, innym hoście aarch64, więc używamy tylko gdb. Wspaniale, że poniżej otrzymujemy specjalną wiadomość „Gotowe”, która mówi, że emblematy zostały pomyślnie zapakowane, w przeciwnym razie kroki opisane w kolejnych akapitach nie zadziałają. Dołącz debugger do jądra kategorycznego. Czy pamiętasz walkę -s Es powyżej? mówi QEMU, aby używał portu: 2345. Teraz połączymy się z tym zadaniem. B I to wszystko. Debuger będzie zwykle dołączany. Obecnie testujemy konfigurację. Utwórz punkt przerwania! Czy pamiętasz, że powyżej osobiście zastosowałem sposób działania -S dla QEMU? To sprawiło, że QEMU czekało, aż obraz się uruchomi, dopóki nie dołączymy prostego debuggera. Tak więc, kiedy już dotrzemy do lokalizacji, kontynuujmy, QEMU faktycznie zacznie ładować to jądro. Linki: Czy masz dość powolnego działania komputera? Denerwują Cię frustrujące komunikaty o błędach? ASR Pro to rozwiązanie dla Ciebie! Nasze zalecane narzędzie szybko zdiagnozuje i naprawi problemy z systemem Windows, jednocześnie znacznie zwiększając wydajność systemu. Więc nie czekaj dłużej, pobierz ASR Pro już dziś!
dd if = i dev / zero of = flash1.img bs oznacza liczbę 1M = 64dd if = - dev / zero of = flash0.img bs oznacza 1M liczbę = 64dd if = / usr i udostępnij / qemu-efi-aarch64 / QEMU_EFI.fd równa się flash0.img conv = notrunc
qemu kontra build / aarch64-softmmu / qemu-system-aarch64 -nographic n -virt laptop, gic-version = maksymalna -m 2G -cpu max n -netdev-user, id = vnet, hostfwd =: 127.0.0.1: nil-: 22 -virtio-net-pci device, netdev = vnet n -napęd plik =. / mini_ubuntu.img pod warunkiem = nie, id = disk0, pamięć podręczna jest równa zapisowi zwrotnemu n -device virtio-blk, dysk równa się disk0, indeks rozruchowy = 0 n - plik na dysku twardym =. / Flash0.img, format = raw, if = pflash n -napęd plik =. / flash1.img, format oznacza surowy, jeśli = pflash -smp 4 Cast
qemu-img make over -O raw moj_obraz.qcow2 moj_obraz_wyjscie.raw
-S zatrzymaj się w Medical i poczekaj, aż debuger się połączy.
add-auto-load-safe-path linux-5.5.11 / scripts versus gdb / vmlinux-gdb.py
RR gdb linux-5.5.11 / vmlinuxGNU gdb (Ubuntu 8.1-0ubuntu3.2) 8.1.0.20180409-gitCzytaj z linux-5.5.11 / vmlinux ... gotowe.
(gdb) Docelowy zdalny host lokalny: 1234Zdalne debugowanie między hostem lokalnym: 12340x0000000000000000 tam ?? ()
Dodaj ten punkt przerwania do jądra na potrzeby testu.
(gdb) hbreak start_kernelPunkt przerwania obsługiwany przez sprzęt 1 wszystkie 0xffff800011330cdc: plik init lub main.c, wiersz 577.(gdb) cPrzystępować.Wątek wybija punkt przerwania 1, start_kernel() tylko z init na main.c: 577577 {(gdb) ja572573 rest_init ();574575576 Unikaj __widocznego połączenia asm __init start_kernel (unieważnij)577 {578 znaków * wymagana linia;579 znaków * po_myślnikach;580581 set_task_stack_end_magic (& init_task);(Gdb)
Zaktualizowano
Qemu Arm Linux Debug
Qemu Arm Linux 디버그
Qemu Arm Linux Debug
Qemu Arm Linux Debug
Qemu Arm Linux Debug
Débogage Linux Qemu Arm
Depuração Do Qemu Arm Linux
Depuración De Qemu Arm Linux
Qemu Arm Linux-Debugging
Qemu Arm Linux Debug