Archief - Java: debuggen

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

lowiebenoot

Legacy Member
Moet voor project voor school jeugdscrabble maken met java. Alles gebeurt gewoon in een cmd-venster, dus niks grafisch.

Ben al redelijk ver geraakt, maar af en toe blijft mijn spel vast zitten. Meestal is dat dan dat hij niet uit een while raakt ofzo, maar ik vind het probleem echt niet. Het gebeurt soms na een ingave. Het rare is als ik mijn spel speel op volledig dezelfde manier,met exact dezelfde voorgaande "zetten" loopt het soms niet vast. Het enigste wat ik nog zie is een underscore die staat te pinken.
Nu vroeg ik me af of jullie handige programma's weten om het te "debuggen" zodat ik kan zien waar hij vast hangt.

forloRn_

Legacy Member
Eclipse to the rescue.

Vind het wel sterk dat het soms wel werkt en soms niet. Gebruik je meerdere threads?

lowiebenoot

Legacy Member
Wat zijn threads als ik vragen mag?
Eerste jaar dat ik java leer :)

En zou je eens kort kunnen zeggen hoe eclipse werkt. Hoe ik moet compilen, uitvoeren, en debuggen bedoel ik dan. Zie het niet echt tussen al die mogelijkheden :P

Timmos

Legacy Member
lowiebenoot zei:
Wat zijn threads als ik vragen mag?
Eerste jaar dat ik java leer :)
Een thread ten opzichte van een proces, is als een proces ten opzichte van een besturingssysteem.

Klinkt nogal vaag: het komt er op neer dat een proces meerdere threads kan bevatten die elk een deel van de rekentijd krijgen, en threads lopen los van elkaar, tenzij op enkele zogenaamde 'synchronisatiepunten' waar de ene thread informatie verwacht van de andere, om verder te kunnen lopen.

Een simpel commandline programmaatje heeft slechts 1 thread. Een goed gebouwd GUI programma heeft meerdere threads: stel dat ge een matrixvermenigvuldiging doet die 10 seconden rekentijd nodig heeft. Ge zou niet willen dat uw GUI hierdoor blokkeert, niet? De gebruiker zou dan namelijk verkeerdelijk kunnen denken dat het programma vastloopt. Als je dit in één thread zou programmeren, dan zou uw GUI daadwerkelijk blokkeren tot wanneer de matrixvermenigvuldiging afgelopen is. Indien ge 2 threads gebruikt, verzorgt de ene de matrixvermenigvuldiging en de andere zorgt ervoor dat uw GUI nog responsief is. De Java Virtual Machine zal er dan voor zorgen dat er afwisselend rekentijd van de processor ter beschikking van alle lopende threads gesteld wordt.

Threads komen goed tot hun recht op multiprocessor systemen: een thread per processor.

TiZon

Legacy Member
Ik hoop dat je toch al met klasses werkt en misschien toch al wat design-knepen. Ik zie soms java-projecten met alles in de main gekletst, zelfs na een jaar java....

Ik schrijf ook al mijn java in Together (for Eclipse) en daarin kan je snel volgen waar het probleem zit ;)

lowiebenoot

Legacy Member
Ik schrijf alles in 1 klasse, is wat ons geleerd is. Verspreidt over verschillende methodes natuurlijk, met parameters. Kan mijn bestand al runnen. Maar wij gebruiken een Input.class om dingen in te geven in dat cmd venster. Dat moet normaal gezien gewoon in dezelfde map staan van het java bestand dat je wil uitvoeren. Toch vindt eclipse het niet.
Graag een klein beetje uitleg van wat ik allemaal moet doen. Eclipse heeft gewoon iets te veel functies voor wat ik al kan...

EDIT:
Heb nu al gevonden hoe ik kan runnen en debuggen. Maar hij geeft errors doordat hij de klasse Input niet kent. Normaal gezien moet die klasse Input toch gewoon in het zelfde mapje staan? Bij eclipse werkt dit precies niet...
Need help!

forloRn_

Legacy Member
Rechtermuisklikken op je project, Build Path, Configure Build Path, Libraries en dan Add Class Folder... of Add External Class Folder...

Denk ik.

lowiebenoot

Legacy Member
heb ondertussen zonder eclipse gevonden wat het was.
Toch bedankt

eniac

Legacy Member
Als ik jou was zou ik toch maar even bekijken hoe je in Eclipse runt en debugt. Daar ga je zeker nog vruchten van plukken.

Uiteindelijk is het gewoon kwestie om in eclipse een nieuw Java project aan te maken, daarin je nodige klasses aan te maken (.java) in de juiste package (kies je zelf), breakpoints te zetten op de juiste lijnen en de debugger te starten. Kies voor het debug perspective, dan zie je welke threads lopen, welke variabelen welke waarden hebben, etc.

- CooKie -

Legacy Member
Over die meerdere klassen gebruiken, ik had in mijn eerste jaar ook pas met meerdere klassen leren werken na het eerste semester, dus je zal dat wel februari leren neem ik aan.

Met wel prog programmeerdje je nu?
Ik vond eclipse wel een hele overstap komende van JCreator, ze gaven echt nix van uitleg, gwn ja installeer nu maar Eclipse .. moeste maar uitzoeke hoe het allemaal werkte. -.-

Nog succes!

Parnakra

Legacy Member
- CooKie - zei:
Ik vond eclipse wel een hele overstap komende van JCreator, ze gaven echt nix van uitleg, gwn ja installeer nu maar Eclipse .. moeste maar uitzoeke hoe het allemaal werkte. -.-
Welkom in de wondere wereld van de informatici. :)

Jerre Muesli

Legacy Member
Log4j is ook een uitstekende log tool om te debuggen. Als je ooit eens een andere soort debugging nodig hebt..
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan