V browseru 3.7 lze pomoci menu vlozit breakpoint na zacatek vybrane metody.
Názory k článku
Squeak: návrat do budoucnosti (10)
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....
ladeni class zprav
celé vláknoMessageTally spyOn: [ b := Array new.].
poprve vypise: no tallies obtained coz mi nepomuze a podruhe az poXte ZeroDivide.
Jak teda zjistim poradi volani 'konstruktoru'?
Re: ladeni class zprav
celé vláknoMezi 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.
Re: ladeni class zprav
celé vláknoa 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 ;-)
Re: ladeni class zprav
celé vláknoNaš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.
Bez titulku
celé vláknoDECTalkReader daisy playOn: KlattVoice new delayed: 10000 .
:-)))
Bez titulku
celé vláknoSpeaker manWithHead say: 'This is my voice. Can you see my lips?'
Hahaha! To je sranda :)

