Sziasztok,
szeretném a heap és a stack állapotát futás közben megfigyelni,
saját C program futása közben.
Hogy lehet elérni, hogy egy futó process által használt memóriaterületet
lássak egy külön ablakban, aminek a tartalma a követi a program futását?
A program a heap és a stack működésének megfigyelésére kell.
Eddig a scanmem a legjobb, amit találtam:
http://code.google.com/p/scanmem/
de hátha van jobb eszköz,
gondoltam megkérdem.
A lényeg, hogy szeretném a memóriatartalmat közvetlenül vizsgálni.
szerk: Linuxra kellene a memóriavizsgálat.
köszönöm dio
- 2705 megtekintés
Hozzászólások
gdb?
--
"You're NOT paranoid, we really are out to get you!"
- A hozzászóláshoz be kell jelentkezni
Igazad van, a gdb is egy lehetőség.
Úgy tudom, hogy arra való hogy a program futását adott pontokon megállthassam, és ott valóban a változók értékeit meg tudom nézni.
de én igazából kívülről, felülről szeretnék ránézni a programra, a memóriaterület egészére.
Szia dio
- A hozzászóláshoz be kell jelentkezni
"Úgy tudom, hogy arra való hogy a program futását adott pontokon megállthassam, és ott valóban a változók értékeit meg tudom nézni."
Igy van, azzal a kulonbseggel, hogy nem csak a valtozokat, hanem tetszoleges memoriateruletet es a regisztereket is tudod irni/olvasni.
--
"You're NOT paranoid, we really are out to get you!"
- A hozzászóláshoz be kell jelentkezni
talan ptrace is jo, de mire is kell ez az egesz?
--
A vegtelen ciklus is vegeter egyszer, csak kelloen eros hardver kell hozza!
- A hozzászóláshoz be kell jelentkezni
Just FYI: A gdb meg a scanmem is használja ptrace-t.
Sőt valószínűleg kimondottan a ptrace API-t használja erre mindkettő, de van egy olyan tippem, hogy az összes hasonló program is ezt használja Linux környezetben.
- A hozzászóláshoz be kell jelentkezni
Pár nappal ezelőtt a záróvizsgámon kaptam egy kérdést, ami a heap-re és a stack-re vonatkozott.
És nem tudtam rá válaszolni - a kérdés arra vonatkozott, hogy a függvények változói hol jönnek létre - és mi a különbség a heap és a stack között, melyik mire való, hogy működik.
mivel két tétel volt, illetve a szakdolgozatom, átlagolva jó jegyet kaptam, de eldöntöttem, hogy utánajárok hogy pontosan hogy működik a memória felhasználása, mi történik a háttérben az egyes területeken.
Most pár napot azzal töltöttem, hogy rákerestem a reverse engineering, linux memory debugger, memory editor, monitoring és hasonló szavakra - régen a C64-es korszakban még volt olyan program, amivel egy az egyben meg lehetett nézni a memória tartalmát - reméltem hogy Linuxra is találok ilyet, hogy egy működő programnál tudjam megnézni hogy mondjuk mi történik sok rekurzív függvényhívás esetében.
Az egy dolog, hogy elméletben ábrákon lerajzolják a szerkezetét a processz által használt memóriatartománynak, de én ha lehet élőben szeretném ezt megnézni - mint amikor a hálózati adatforgalmat hallgatja valaki.
Egy normál program sebességét nyilván nem tudnám szemmel követni, de szeretnék egy egyszerű, pár másodpercenként ciklusban lépegető állatorvosi ló programot készíteni, amit aztán a memóriában meg tudok nézni.
Erről lenne szó.
Jó éjt, dio
- A hozzászóláshoz be kell jelentkezni
Melyik tanintézményben?
- A hozzászóláshoz be kell jelentkezni
Szeged, SZTE Programtervező informatikus.
Szia dio
- A hozzászóláshoz be kell jelentkezni
Szia, a vizsgán korrektek voltak, tényleg én zavarodtam bele a kérdésbe.
- A hozzászóláshoz be kell jelentkezni
Ket megjegyzes:
- Ha az oprendszer nem relevans, akkor jobban jarsz, ha windowson probalkozol. Pl. egy immunity debugger sokkal fejletteb es kezreallobb dolog, mint egy gdb, plusz normalisabban lehet scriptelni is.
- A heap mukodeset nem valoszinu, hogy ennyibol megerted. :)
--
"You're NOT paranoid, we really are out to get you!"
- A hozzászóláshoz be kell jelentkezni
Szia, felmerült bennem az a gondolat, hogy ha a scanmem tud keresni a memóriában, akkor már majdnem azt csinálja ami nekem kell:
csak ki kell iratnom hogy épp melyik területet vizsgálja, meg az értékeket.
- A hozzászóláshoz be kell jelentkezni
Örültem volna ha Linuxos megoldást találok, de ha minden kötél szakad, akkor win-en meg fogom nézni.
:-)
- A hozzászóláshoz be kell jelentkezni
Szia, mit javasolnál, hol tudnám ezt megtanulni-megérteni?
- A hozzászóláshoz be kell jelentkezni
Én olvasással kezdeném.
- A hozzászóláshoz be kell jelentkezni
Ez nagyon jó, köszönöm! olvasom!
- A hozzászóláshoz be kell jelentkezni