Internet Info, s.r.o. Lupa Měšec Podnikatel Root Zdroják DigiZone Slunečnice Vitalia TopDrive KupDnes Navrcholu NovýTarif Dobrý web Weblogy Woko Jagg Computer.cz SK: MojeLinky

Hlavní navigace

Názory k článku
Squeak: návrat do budoucnosti (10)

uživatel si přál zůstat v anonymitě
13. 4. 2004 8:04 Nový

breakpointy

celé vlákno

V browseru 3.7 lze pomoci menu vlozit breakpoint na zacatek vybrane metody.

uživatel si přál zůstat v anonymitě
13. 4. 2004 8:08 Nový

Ladici rezim

celé vlákno

"Všimněte si jednoho zásadního rysu Smalltalku. Pro ladění programu se nepoužívá žádný speciální režim. Z tohoto úhlu ohledu Smalltalk ladění vlastně vůbec nezná. Vše řeší svými vlastními prostředky a nerozlišuje mezi během programu, jeho vytvářením a laděním."

Kdosi to prirovnal k tomu, jako kdyz se necha cely linux s X a KDE nechat jet v debuggeru. Kdykoliv dojde k potizim, lze to hned prozkoumat a opravit. V linuxu/X/KDE prakticky nepredstavitelne....

david
david (neregistrovaný)
13. 4. 2004 14:22 Nový

ladeni class zprav

celé vlákno

MessageTally spyOn: [ b := Array new.].
poprve vypise: no tallies obtained coz mi nepomuze a podruhe az poXte ZeroDivide.
Jak teda zjistim poradi volani 'konstruktoru'?

Pavel Křivánek
Pavel Křivánek (neregistrovaný)
13. 4. 2004 15:28 Nový

Re: ladeni class zprav

celé vlákno

Mezi zprávami tříd a metatříd není rozdíl.

V tomto případě použijte zprávu tallySends:. Dostanete z ní mimojiné:

**Tree**
1 Array class(ArrayedCollection class)>>new

což vám řekne, že byla zavolána zpráva new, která je implemetnovaná v metatřídě třídy ArrayedCollection a vypadá takto:

new
^ self new: 0

Hlouběji se (kvůli optimalizacím) nezanoří ani debugger.

david
david (neregistrovaný)
15. 4. 2004 12:51 Nový

Re: ladeni class zprav

celé vlákno

a jak se potom to new provadi? Celkem zajimave by bylo popsat postup od napsani Array new:10 v transcriptu. Co se vytvori, co to zavola atd... Cetl jsem treba, ze new je definovane v Behaviour, ale kde se vytvari ten, vubec nevim: zdrojaku moc, debuger nepomohl.
Klidne pockam na dalsi dily, jenom abyste s tim pocitali ;-)

Pavel Křivánek
Pavel Křivánek (neregistrovaný)
15. 4. 2004 13:27 Nový

Re: ladeni class zprav

celé vlákno

Našel jste si docela matoucí příklad. Musíte si uvědomit, že se nejedná o metodu třídy (nebude ji vykonávat instance), ale o metodu metřídy, kterou vykonává TŘÍDA.

Předkem třídy Class je třída Behavior, ve které je implementována metoda new: vykonávající primitivu <primitive: 71>.

To, že se debugger nazanoří až na samé dno, je zpusobeno optimalizacemi interpretu, k nimž se přistupuje, protože pole (a tedy i řetězce, symboly atd.) tvoří několik desítek procent objektů z celé image.

OldFrog
OldFrog (neregistrovaný)
14. 4. 2004 21:10 Nový

Bez titulku

celé vlákno

DECTalkReader daisy playOn: KlattVoice new delayed: 10000 .

:-)))

OldFrog
OldFrog (neregistrovaný)
14. 4. 2004 21:20 Nový

Bez titulku

celé vlákno

Speaker manWithHead say: 'This is my voice. Can you see my lips?'

Hahaha! To je sranda :)

Zasílat nově přidané příspěvky e-mailem