OldComp.cz

Komunitní diskuzní fórum pro fanoušky historických počítačů


Právě je 28.03.2024, 10:37

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]




Odeslat nové téma Odpovědět na téma  [ Příspěvků: 20 ]  Přejít na stránku 1, 2  Další
Autor Zpráva
 Předmět příspěvku: Nativní debugger
PříspěvekNapsal: 31.01.2015, 10:25 
Offline
Pan Generální
Uživatelský avatar

Registrován: 11.06.2013, 15:27
Příspěvky: 3025
Has thanked: 2191 times
Been thanked: 894 times
Existuje, vedle četných M/C monitorů s klasickým ovládáním (zadáváním písmen),
lepší program, který umí trasovat programy různými způsoby, testovat, resp. hlídat stavy registrů apod.?
Hledám utilitu přímo pro C64 (příp. C128), ne emulační kanóny typu ICU64.

Na krátké experimenty by stačilo i něco jednoduššího,
např. podobné stránkovému editoru s jednoduchým trasováním ve výukovém balíku pro ZX Spectrum.

_________________
// na co myslím, když sedím u oldkompů: celý příběh


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Nativní debugger
PříspěvekNapsal: 31.01.2015, 18:10 
Offline
Kecálek

Registrován: 16.05.2013, 13:18
Příspěvky: 230
Has thanked: 6 times
Been thanked: 43 times
Jediný co existuje, tak jsou disassemblery, nebo music playery s výpisem SID registrů + ram.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Nativní debugger
PříspěvekNapsal: 08.05.2019, 21:10 
Offline
Pan Generální
Uživatelský avatar

Registrován: 11.06.2013, 15:27
Příspěvky: 3025
Has thanked: 2191 times
Been thanked: 894 times
Zatimco ke mne zpoza oceanu putuje cosi jako hardwareova ladicka programu,
na netu se vylouplo tohle megadílo:

Megamon 64 by Mark Schultz is not only a great ML Monitor, it is also very well documented. Docs are on disk.
http://www.commodore.software/downloads ... megamon-64

Megamon has a single-step feature (unusual in memory-resident monitors)
https://www.lyonlabs.org/commodore/onrequest/index.html

Pravy debugger pro C64 se tezko hleda, vydavaji za nej kdejaky disasembler, vcetne starickeho Supermonu.

_________________
// na co myslím, když sedím u oldkompů: celý příběh


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Nativní debugger
PříspěvekNapsal: 10.06.2019, 23:35 
Offline
Radil
Uživatelský avatar

Registrován: 23.05.2013, 20:30
Příspěvky: 322
Bydliště: Východní Čechy
Has thanked: 2 times
Been thanked: 48 times
SCjoe píše:
Zatimco ke mne zpoza oceanu putuje cosi jako hardwareova ladicka programu,
na netu se vylouplo tohle megadílo:

Megamon 64 by Mark Schultz is not only a great ML Monitor, it is also very well documented. Docs are on disk.
http://www.commodore.software/downloads ... megamon-64

Megamon has a single-step feature (unusual in memory-resident monitors)
https://www.lyonlabs.org/commodore/onrequest/index.html

Pravy debugger pro C64 se tezko hleda, vydavaji za nej kdejaky disasembler, vcetne starickeho Supermonu.


Reálnej debugger čistě softwarovej jako program co by se nahrál je trochu nereálný na C64, smysl by měl pouze hardwarovej v exp portu,je je možnost reálně koukat na bus,což i existovalo.PDS Development system to myslím umožňoval.Ze současných cartridge má asi nejlíp propracovanej monitor IDE64.Ovšem Reloaded MK2 už nabízí reálné debugovací funkce,kde kromě klasického monitoru a dalších funkcí lze krokovat běh C64 ze strany PC.

_________________
JMP $FCE2

C64, C128DCR, IDE64, SuperCPU64, 1541 Ultimate-II, MMC Replay, FC3, REU 2MB, Geroram512, NeoRAM 2MB, RR-Net, SilverSurfer, Wiznet64 , 1541-II,1571,1581,Oceanic


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Nativní debugger
PříspěvekNapsal: 11.06.2019, 12:04 
Offline
Óm Nejvyšší

Registrován: 22.05.2013, 21:14
Příspěvky: 3642
Bydliště: Bratislava
Has thanked: 371 times
Been thanked: 788 times
Comos píše:
Reálnej debugger čistě softwarovej jako program co by se nahrál je trochu nereálný na C64
Preco by mal byt nerealny ? Kopec inych osembitov (aj horsich) ma softwerovy debugger.

Inak, napadlo ma ze kedysi davno (este v 80-tych rokoch) nejaky asembler / monitor / a-mozno-aj-debugger urobil Hell-bytes (Juraj Zopp). Hovoril, ze sa mi pacilo spektracke MRS, tak ho preportoval na C64 (no, co si matne spominam, skor nez port MRS mi to prislo ako port Gens-u a Mons-u). Zial, s komodorom uz davno skoncil, takze to najskor uz mat nebude, ale mozno sa to este bude povalovat niekde na nete.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Nativní debugger
PříspěvekNapsal: 11.06.2019, 21:08 
Offline
Radil
Uživatelský avatar

Registrován: 23.05.2013, 20:30
Příspěvky: 322
Bydliště: Východní Čechy
Has thanked: 2 times
Been thanked: 48 times
Citace:
Preco by mal byt nerealny ? Kopec inych osembitov (aj horsich) ma softwerovy debugger.


To se jedná jen o ML monitor,který řada lidí považuje za debugger ač do reálnýho debuggeru tomu pár vlastností chybí.

_________________
JMP $FCE2

C64, C128DCR, IDE64, SuperCPU64, 1541 Ultimate-II, MMC Replay, FC3, REU 2MB, Geroram512, NeoRAM 2MB, RR-Net, SilverSurfer, Wiznet64 , 1541-II,1571,1581,Oceanic


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Nativní debugger
PříspěvekNapsal: 12.06.2019, 10:28 
Offline
Óm Nejvyšší

Registrován: 22.05.2013, 21:14
Příspěvky: 3642
Bydliště: Bratislava
Has thanked: 371 times
Been thanked: 788 times
Comos píše:
Citace:
Preco by mal byt nerealny ? Kopec inych osembitov (aj horsich) ma softwerovy debugger.
To se jedná jen o ML monitor,který řada lidí považuje za debugger ač do reálnýho debuggeru tomu pár vlastností chybí.
Teraz nie som si isty ci obaja pod pojmami ML monitor a debugger myslime to iste. Aspon ja si pod pojmom softwerovy debugger predstavujem program ktory umozni vykonavat ladeny program, krokovat ho, sledovat jeho vykonavanie (vypis instrukcii, obsahy registrov a pameti) a nastavovat rozne podmienky vykonavania (ochranne okna v pameti, breakpointy...). A toto vsetko sa softwerovo da urobit.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Nativní debugger
PříspěvekNapsal: 13.06.2019, 00:23 
Offline
Radil
Uživatelský avatar

Registrován: 23.05.2013, 20:30
Příspěvky: 322
Bydliště: Východní Čechy
Has thanked: 2 times
Been thanked: 48 times
Busy píše:
Comos píše:
Citace:
Preco by mal byt nerealny ? Kopec inych osembitov (aj horsich) ma softwerovy debugger.
To se jedná jen o ML monitor,který řada lidí považuje za debugger ač do reálnýho debuggeru tomu pár vlastností chybí.
Teraz nie som si isty ci obaja pod pojmami ML monitor a debugger myslime to iste. Aspon ja si pod pojmom softwerovy debugger predstavujem program ktory umozni vykonavat ladeny program, krokovat ho, sledovat jeho vykonavanie (vypis instrukcii, obsahy registrov a pameti) a nastavovat rozne podmienky vykonavania (ochranne okna v pameti, breakpointy...). A toto vsetko sa softwerovo da urobit.


Urobit se to dá,ale né na C64 ,kde limit je paměť a ASM je low level.Relativně lze ladit programy v basicu,protože basic je tady high level a basic sám o sobě nemodifikuje vektory,které se na tohle dají využít.U Final Cartridge III existuje trace command,kdy pak vidím v horním řádku právě vykonávanou řádku v basicu.Tohle je možný jen proto,že mi běží na pozadí ASM rutina (na principu TSR), v případě FC3 spuštěná v ROMce a v případě utilitiy,která zabírá oblast RAM,kterou BASIC nevyužívá.V případě ASM programu můžu na nějaké spešl debuggovací funkce zapomenout.S IDE64 mám možnost program breaknout a dostat se do monitoru jen pokud mi program nepozmění NMI vektor,pak ho musím jedině ručně upravit,aby mi ten vektor nepřepisoval.Samozřejmě pokud program potřebuje vlastní NMI vektor ke své práci,tak mám smůlu.Backtracovat je možné do určitě úrovně i nastavit breakpointy na reálnách adresách anebo prostě break natvrdo ručně.Můžu měnit obsah paměti,registry load/save kompletní paměti a ukončením monitoru program dál pokračuje.Na nějaké krokování ať už na klávesu,sledování programu můžete rovnou zapomenout.Reálnej C64 debugger je ve Vice na PC.

_________________
JMP $FCE2

C64, C128DCR, IDE64, SuperCPU64, 1541 Ultimate-II, MMC Replay, FC3, REU 2MB, Geroram512, NeoRAM 2MB, RR-Net, SilverSurfer, Wiznet64 , 1541-II,1571,1581,Oceanic


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Nativní debugger
PříspěvekNapsal: 13.06.2019, 09:29 
Offline
Óm Nejvyšší

Registrován: 22.05.2013, 21:14
Příspěvky: 3642
Bydliště: Bratislava
Has thanked: 371 times
Been thanked: 788 times
Comos píše:
Urobit se to dá,ale né na C64 ,kde limit je paměť a ASM je low level.
Podla mna by sa urcite dalo aj na C64. Ved napriklad taky ZX Spectrum, ten ma este mensiu pamet (48kB, z coho este natvrdo ukroji 7kB obrazovka takze realne iba cca 41kB), a existuje tu kopec plnohodnotnych cisto softwerovych debuggerov. Umoznuju krokovat strojakovy program vsetkymi beznymi sposobmi ako nativne debuggery: step, step-over (rychle vykonanie celeho podprogramu), beh programu v plnej rychlosti az po najblizsi breakpoint, sledovanie/modifikacia pameti a vsetkych registrov procesora, ochrana vybranych usekov pameti pred zapisom a vykonavanim kodu.
Samozrejme je tu to obmedzenie ze debugger musi byt nahrany niekde v pameti, a tento kus pameti krokovany program potom nemoze pouzivat. Ale s tym sa pri softwerovych debuggeroch pocita.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Nativní debugger
PříspěvekNapsal: 13.06.2019, 10:18 
Offline
Kecka

Registrován: 10.09.2017, 21:13
Příspěvky: 54
Has thanked: 51 times
Been thanked: 6 times
Busy píše:
Comos píše:
Urobit se to dá,ale né na C64 ,kde limit je paměť a ASM je low level.
Podla mna by sa urcite dalo aj na C64. Ved napriklad taky ZX Spectrum, ten ma este mensiu pamet (48kB, z coho este natvrdo ukroji 7kB obrazovka takze realne iba cca 41kB), a existuje tu kopec plnohodnotnych cisto softwerovych debuggerov. Umoznuju krokovat strojakovy program vsetkymi beznymi sposobmi ako nativne debuggery: step, step-over (rychle vykonanie celeho podprogramu), beh programu v plnej rychlosti az po najblizsi breakpoint, sledovanie/modifikacia pameti a vsetkych registrov procesora, ochrana vybranych usekov pameti pred zapisom a vykonavanim kodu.
Samozrejme je tu to obmedzenie ze debugger musi byt nahrany niekde v pameti, a tento kus pameti krokovany program potom nemoze pouzivat. Ale s tym sa pri softwerovych debuggeroch pocita.


Já myslím že by stačilo číst co píše Cosmos, pokusit se porozumět tomu textu a až teprve potom psát co si myslíš.

Můžeš nám třeba jen nastínit jak by se tedy na C64 bez jakékoliv další HW podpory dalo realizovat toho ?

"beh programu v plnej rychlosti az po najblizsi breakpoint, sledovanie/modifikacia pameti a vsetkych registrov procesora, ochrana vybranych usekov pameti pred zapisom a vykonavanim kodu."


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Nativní debugger
PříspěvekNapsal: 14.06.2019, 09:55 
Offline
Óm Nejvyšší

Registrován: 22.05.2013, 21:14
Příspěvky: 3642
Bydliště: Bratislava
Has thanked: 371 times
Been thanked: 788 times
Charlie_XZ píše:
Busy píše:
Samozrejme je tu to obmedzenie ze debugger musi byt nahrany niekde v pameti, a tento kus pameti krokovany program potom nemoze pouzivat. Ale s tym sa pri softwerovych debuggeroch pocita.
Já myslím že by stačilo číst co píše Cosmos, pokusit se porozumět tomu textu a až teprve potom psát co si myslíš.
Ja si zase myslim ze by stacilo si precitat aj posledne dve vety z mojho predchadzajuceho prispevku (nechal som ich tu v citate) a pokusit sa im porozumiet :)


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Nativní debugger
PříspěvekNapsal: 14.06.2019, 10:25 
Offline
Kecka

Registrován: 10.09.2017, 21:13
Příspěvky: 54
Has thanked: 51 times
Been thanked: 6 times
Busy píše:
Charlie_XZ píše:
Busy píše:
Samozrejme je tu to obmedzenie ze debugger musi byt nahrany niekde v pameti, a tento kus pameti krokovany program potom nemoze pouzivat. Ale s tym sa pri softwerovych debuggeroch pocita.
Já myslím že by stačilo číst co píše Cosmos, pokusit se porozumět tomu textu a až teprve potom psát co si myslíš.
Ja si zase myslim ze by stacilo si precitat aj posledne dve vety z mojho predchadzajuceho prispevku (nechal som ich tu v citate) a pokusit sa im porozumiet :)


Neodbíhej od tématu, tohle není ten problém a proto jsem ho ani nevypíchnul, odpověz mi na mojí původní otázku jak umožníš "beh programu v plnej rychlosti az po najblizsi breakpoint, sledovanie/modifikacia pameti a vsetkych registrov procesora, ochrana vybranych usekov pameti pred zapisom a vykonavanim kodu".

O tom totiž nativní debugger je a ten bohužel není bez HW podpory nebo možnosti nějaké virtualizace která mimochodem zase potřebuje alespoň minimální HW podporu.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Nativní debugger
PříspěvekNapsal: 14.06.2019, 11:30 
Offline
Óm Nejvyšší

Registrován: 22.05.2013, 21:14
Příspěvky: 3642
Bydliště: Bratislava
Has thanked: 371 times
Been thanked: 788 times
Charlie_XZ píše:
tohle není ten problém
Ok, beriem ta za slovo :)

beh programu v plnej rychlosti az po najblizsi breakpoint - Normalny klasicky softwerovy breakpoint. Na 6502 je na toto vhodna instrukcia BRK a ked ladeny program vyuziva prerusenie tak sa s urcitymi obmedzeniami da pouzit aj JSR. Proste, ked program narazi na breakpoint, tak breakpoint sposobi ze program nepokracuje vo vykonavani, ale skoci do debuggera a debugger nasledne zobrazi kde program skoncil a uzivatel sa moze rozhodnut co dalej.

sledovanie/modifikacia pameti a vsetkych registrov procesora - tak toto je hadam jasne, uzivatel moze pocas krokovania sledovat a modifikovat pamet ci registre. Pocas ostreho behu na toto moze sluzit prave ten breakpoint - ked program narazi na breakpoint, riadenie sa odovzda debuggeru, ktory na zaklade definovanych podmienok (napr. na zaklade hodnot v registroch a v pameti) vie rozhodnut co dalej (napriklad na ZX Spektre toto umoznuje Laser Genius debugger).

ochrana vybranych usekov pameti pred zapisom a vykonavanim koduV ktoromkolvek krokovacom rezime ma debugger stale plnu kontrolu nad programom, vie ake instrukcie z akej adresy sa idu vykonavat, vie kam tie instrukcie sahaju a co modifikuju. Takze nie je problem definovat useky pameti kde sa dane cinnost mozu a kde nesmu vykonavat. Napriklad debugger MRS umoznuje definovat styri pametove okna kde sa program moze vykonavat (akonahle sa skoci mimo niektoreho okna, vykonavanie programu sa zastavi), tak isto umoznuje definovat styri pametove okna so zakazanym zapisom - akonahle by vykonavana instrukcia chcela zapisat do tejto pameti, program sa pred jej vykonanim zastavi, a este okrem toho umoznuje definovat aj "zakazane" instrukcie, t.j. instrukcie ktore v programe vykonat nechceme (napr. ak nastavim ako zakazanu instrukciu OUT, tak potom pri akomkolvek poslani dat do akejkolvek periferie sa program zastavi a ja mozem skontrolovat ci to chcem alebo nie).


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Nativní debugger
PříspěvekNapsal: 15.06.2019, 14:05 
Offline
Radil
Uživatelský avatar

Registrován: 23.05.2013, 20:30
Příspěvky: 322
Bydliště: Východní Čechy
Has thanked: 2 times
Been thanked: 48 times
Citace:
beh programu v plnej rychlosti az po najblizsi breakpoint - Normalny klasicky softwerovy breakpoint. Na 6502 je na toto vhodna instrukcia BRK a ked ladeny program vyuziva prerusenie tak sa s urcitymi obmedzeniami da pouzit aj JSR. Proste, ked program narazi na breakpoint, tak breakpoint sposobi ze program nepokracuje vo vykonavani, ale skoci do debuggera a debugger nasledne zobrazi kde program skoncil a uzivatel sa moze rozhodnut co dalej.


BRK instrukci využívám jak jsem již popisoval výše, ale je to použitelné jen pokud máte konfiguraci paměti ($01) nastavenou,aby byla vidět Kernal ROM, jelikož při BRK se zapnutou Kernal ROM se skáče přes vektor..Pokud vám běžící program přepíše vektor tabulku podle své potřeby nebo mění konfiguraci RAM $01 podle potřeby a v případě konfigurace $01 na bez Kernalu si nastavi hardwarouvou IRQ adresu ($FFFE-$FFFF) jak potřebuje,tak jsou nějaký breakpointy k ničemu.

Citace:
sledovanie/modifikacia pameti a vsetkych registrov procesora - tak toto je hadam jasne, uzivatel moze pocas krokovania sledovat a modifikovat pamet ci registre. Pocas ostreho behu na toto moze sluzit prave ten breakpoint - ked program narazi na breakpoint, riadenie sa odovzda debuggeru, ktory na zaklade definovanych podmienok (napr. na zaklade hodnot v registroch a v pameti) vie rozhodnut co dalej (napriklad na ZX Spektre toto umoznuje Laser Genius debugger).


Ze zajímavosti jsem se podíval na Laser Genius, který podle popisu je Assembler a obsahuje i monitor,který má určité debugovací funkce.Neznám ZX Spectrum organizaci paměti a jak s ní pracuje,ale na C64 v běžné praxi jak program přistupuje k hw je softwarový debugger,který se nahraje jako program,kde obsadí paměť např od $8000 nebo od $C000 nepoužitelný, jelikož může spuštěný program si na danou oblast zapsat data pokud potřebuje (memory depacker, reloc část paměti).Použitelné by to bylo jen pro malé programy,u kterých budu 100% vědět,že mi nepřepisují vektory a nezapisuje nic na oblast,kde mi leží sw debugger,nicméně jeho debugovací možnosti by byly stejně omezené,spíše jako monitor.

_________________
JMP $FCE2

C64, C128DCR, IDE64, SuperCPU64, 1541 Ultimate-II, MMC Replay, FC3, REU 2MB, Geroram512, NeoRAM 2MB, RR-Net, SilverSurfer, Wiznet64 , 1541-II,1571,1581,Oceanic


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Nativní debugger
PříspěvekNapsal: 17.06.2019, 10:55 
Offline
Óm Nejvyšší

Registrován: 22.05.2013, 21:14
Příspěvky: 3642
Bydliště: Bratislava
Has thanked: 371 times
Been thanked: 788 times
Comos píše:
Pokud vám běžící program přepíše vektor tabulku podle své potřeby nebo mění konfiguraci RAM $01 podle potřeby a v případě konfigurace $01 na bez Kernalu si nastavi hardwarouvou IRQ adresu ($FFFE-$FFFF) jak potřebuje,tak jsou nějaký breakpointy k ničemu.
Prave preto som napisal, ze v takych pripadoch sa da pouzit JSR.
Comos píše:
Neznám ZX Spectrum organizaci paměti a jak s ní pracuje,ale na C64 v běžné praxi jak program přistupuje k hw je softwarový debugger,který se nahraje jako program,kde obsadí paměť např od $8000 nebo od $C000 nepoužitelný, jelikož může spuštěný program si na danou oblast zapsat data
Prave preto som vyssie napisal:
Busy píše:
Samozrejme je tu to obmedzenie ze debugger musi byt nahrany niekde v pameti, a tento kus pameti krokovany program potom nemoze pouzivat. Ale s tym sa pri softwerovych debuggeroch pocita.
Bezna prax na ZX je z tohto hladiska rovnaka ako na C64 - kedze ani jeden z procesorov Z80 a 6502 nema chraneny ci virtualny rezim, naostro beziaci program ma (zial) plnu kontrolu nad pocitacom a moze si v nom robit co chce, t.j. aj prepisat pamet v ktorej je nahraty debugger. Avsak pokial program nebezi plnou rychlostou, ale v niektorom z krokovacich rezimov (t.j. debugger vykonava jednotlive instrukcie programu), potom prave debugger ma plnu kontrolu nad pocitacom a vie sa pred prepisanim (ci uz svojho kodu, vektorov pouzivanych preruseni alebo nevhodne nastavenie periferii ci memory layoutu) chranit.

Napriklad debugger v MRS na ZX Spektre ma (okrem inych aj) krokovaci rezim "N" v ktorom debugger takto vykonava instrukcie, pricom nevypisuje registre a ani ziadne informacie, ale vsetky kontroly (ilegalne, instrukcie, pametove okna pre vykonavania kodu a ochrana pred zapisom) su stale aktivne a akekolvek porusenie niektorej z ochran debugger okamzite hlasi. Je pravda, ze program nebezi nativne svojou plnou rychlostou, ale pre jednoduchsie kody je to rychlost dostatocna, dokonca aj cely basic sa takto da "spustit" v debuggeri.


Nahoru
 Profil  
 
Zobrazit příspěvky za předchozí:  Seřadit podle  
Odeslat nové téma Odpovědět na téma  [ Příspěvků: 20 ]  Přejít na stránku 1, 2  Další

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 5 návštevníků


Nemůžete zakládat nová témata v tomto fóru
Nemůžete odpovídat v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete přikládat soubory v tomto fóru

Hledat:
Přejít na:  
Založeno na phpBB® Forum Software © phpBB Group
Český překlad – phpBB.cz