Bochs'ta bir bellek dökümü nasıl yapılır?


2

Hafızaya nasıl atılırsın? Bochs ?

(Ya fiziksel ya da sanal - ama her ikisi de daha iyi olurdu!)

Yanıtlar:


2

Bu sorunun çok zaman geçtiğini biliyorum ama aynı problemi yaşadım ve çözebilirdim.

GUI Debug

Bochs, aşağıdaki bayraklarla etkinleştirilebilen görsel bir hata ayıklayıcıya eşlik eder.

./configure \
--enable-x86-debugger \
--enable-debugger \
--enable-debugger-gui

ne zaman oluşturacaksınız ve bu seçeneği Bochs yapılandırma dosyanıza ekleyin:

display_library: x, options = "gui_debug"

GUI hata ayıklayıcısını açıkken, istediğiniz zaman "ara" düğmesine basabilirsiniz ve Görünüm menüsünde, "Fiziksel MemDump" ve "Doğrusal MemDump" seçeneklerine sahipsiniz, sadece başlangıç ​​adresini girin;

GUI Debug olmadan

İsterseniz, metin modunu da kullanabilirsiniz, yapılandırılmış kesme noktalarını listelemek için kesme noktası "lbreak addr" (doğrusal için) veya "pbreak addr" (fiziksel) komutuyla ayarlanabilir; Onları "d numarası" silin. Tek adım (lar) ve yürütmeye devam etmek (devam).

Yürütme duraklatıldığında, örneğin "x" (doğrusal) ve "xp" (fiziksel), ardından çıktı formatı, bayt sayısı ve adres gibi bazı isteğe bağlı parametreleri kullanabilirsiniz.

Örnek:

x /30bx 0xC0000000

30 bayt onaltılık biçimde 0xC0000000 doğrusal adresinden dökümü yapacak.

Dosyaya yazma

Bazı durumlarda, dökümü ekranda okunacak kadar büyük olabilir. Bu durumlarda "writemem" komutunu kullanarak bir dosyaya yapabilirsiniz.

Sözdizimi:

writemem "filename" linearAddress lenght_in_bytes

öyleyse, 0xdeadbeef doğrusal adresinin ilk 1024 baytını "dökümü" dosyasına atmanız gerekirse, şöyle bir şey olur:

writemem "dump" 0xdeadbeef 1024

çalışmalı.

Bakınız http://bochs.sourceforge.net/doc/docbook/user/internal-debugger.html daha fazla bilgi için.


0

Belkide sen arıyorsun Simülasyonu kaydedin ve geri yükleyin :

CPU'ların durumu, bellek ve tüm cihazlar şimdi kaydedilebilir. Bochs'u çalıştırırken başlık çubuğunda "Askıya Al" adlı bir düğme olacaktır.

(vurgu eklenmiştir)


1
Er ... evet, hafızanın içeriği orada, ama ona nasıl bakarım?
Mehrdad

0

Deneyin memsave ve pmemsave Bochs konsolundaki komutlar.

memsave addr size file

addr boyutunda başlayan disk sanal belleğe kaydetme.

pmemsave addr size file

addr boyutunda başlayan diske fiziksel bellek dökümü kaydedin.


1
Bochs'in bunu desteklediğinden emin misin?
Mehrdad

çalışmıyor
Milind R

0

Görünüşe göre var writemem

    writemem                     dump a number of bytes of virtual memory starting from
                                 the specified linear address into a file

Fakat işe yaramadı.


Bir şekilde çalışmasını sağlarsan beni güncelle
Milind R
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.