Gamestudio Links
Zorro Links
Newest Posts
Blobsculptor tools and objects download here
by NeoDumont. 03/28/24 03:01
Issue with Multi-Core WFO Training
by aliswee. 03/24/24 20:20
Why Zorro supports up to 72 cores?
by Edgar_Herrera. 03/23/24 21:41
Zorro Trader GPT
by TipmyPip. 03/06/24 09:27
VSCode instead of SED
by 3run. 03/01/24 19:06
AUM Magazine
Latest Screens
The Bible Game
A psychological thriller game
SHADOW (2014)
DEAD TASTE
Who's Online Now
2 registered members (Imhotep, opm), 785 guests, and 4 spiders.
Key: Admin, Global Mod, Mod
Newest Members
sakolin, rajesh7827, juergen_wue, NITRO_FOREVER, jack0roses
19043 Registered Users
Previous Thread
Next Thread
Print Thread
Rate Thread
Funktionsbegrenzung? #467181
07/19/17 14:56
07/19/17 14:56
Joined: Sep 2005
Posts: 352
Germany
preacherX Offline OP
Senior Member
preacherX  Offline OP
Senior Member

Joined: Sep 2005
Posts: 352
Germany
Gibt es eigentlich eine Grenze, wie viel Inhalt eine Funktion haben darf? Habe nämlich das Problem, dass wenn ich zu viel in eine bestimmten Funktion schreibe, das Spiel beim Start crasht. Es crasht beim Start obwohl zu diesem Zeitpunkt diese Funktion gar nicht aufgerufen wird. Es gibt auch keine Fehlermeldung, nur Windows meldet sich mit dem üblichen Satz. Wenn ich den Umfang der Funktion reduziere, läuft wieder alles normal. Ich benutze keine lokalen Arrays, ich denke also nicht, dass der Stack zu voll ist.

Re: Funktionsbegrenzung? [Re: preacherX] #467183
07/19/17 16:11
07/19/17 16:11
Joined: Oct 2008
Posts: 679
Germany
Ayumi Offline
User
Ayumi  Offline
User

Joined: Oct 2008
Posts: 679
Germany
Soweit ich weiß, nein (nur in der breite der Zeilen).
Du solltest vielleicht mal schauen, ob Werte null sind.
Beispielsweise muss bei manchen Funktion, obwohl nicht eindeutig angegeben, while(!player) wait(1); in die erste Zeile geschrieben werden.

Bestenfalls mal die Funktion hier posten.
EDIT:
Ein Bild mit der Fehlermeldung wäre auch sinnvoll. Und eine Aussage, wann du die Funktion wo aufrufst.

Last edited by Ayumi; 07/19/17 16:29.
Re: Funktionsbegrenzung? [Re: Ayumi] #467193
07/20/17 04:35
07/20/17 04:35
Joined: Sep 2003
Posts: 6,861
Kiel (Germany)
Superku Offline
Senior Expert
Superku  Offline
Senior Expert

Joined: Sep 2003
Posts: 6,861
Kiel (Germany)
Originally Posted By: Ayumi
Beispielsweise muss bei manchen Funktion, obwohl nicht eindeutig angegeben, while(!player) wait(1); in die erste Zeile geschrieben werden.

Dann funktionierte mein Spiel gar nicht, da ich den player-Pointer nicht benutze. wink Soll heißen, diese while Schleife ist nicht erforderlich, sie kaschiert wahrscheinlich eher andere Probleme in deinem Code/ den jeweiligen Funktionen.

@preacherX: Wahrscheinlich die falsche Richtung beim Debuggen dieses Crashes aber... lad dir mal folgendes Programm herunter (zip, keine Installation notwendig): https://technet.microsoft.com/en-us/sysinternals/vmmap.aspx
Starte dein Spiel, lass es crashen, dann starte VMMap und wähle den acknex Prozess aus. Was für Werte stehen dort, insbesondere wie groß ist der Heap-Wert?


"Falls das Resultat nicht einfach nur dermassen gut aussieht, sollten Sie nochmal von vorn anfangen..." - Manual

Check out my new game: Pogostuck: Rage With Your Friends
Re: Funktionsbegrenzung? [Re: Superku] #467195
07/20/17 07:20
07/20/17 07:20
Joined: Oct 2008
Posts: 679
Germany
Ayumi Offline
User
Ayumi  Offline
User

Joined: Oct 2008
Posts: 679
Germany
@ Superku
Danke für den Hinweis, war schon recht verwunderlich grin

Re: Funktionsbegrenzung? [Re: Ayumi] #467196
07/20/17 10:33
07/20/17 10:33
Joined: Sep 2005
Posts: 352
Germany
preacherX Offline OP
Senior Member
preacherX  Offline OP
Senior Member

Joined: Sep 2005
Posts: 352
Germany
Ich habe hier mal ein simples Beispiel erstellt:

https://1drv.ms/u/s!AnPFFAcZiQdsk71rKQFDwD1Qt6JGNQ

Dort habe ich in der main(); einfach ne riesige while()-Schleife mit vielen if() Abfragen darin erstellt. Beim Starten crasht das ganze dann. Wenn man aber ein paar Zeilen löscht, läuft es...

Re: Funktionsbegrenzung? [Re: preacherX] #467197
07/20/17 10:55
07/20/17 10:55
Joined: Sep 2003
Posts: 6,861
Kiel (Germany)
Superku Offline
Senior Expert
Superku  Offline
Senior Expert

Joined: Sep 2003
Posts: 6,861
Kiel (Germany)
In der Tat... verblüffend und etwas erschreckend.
(Ich musste die Anzahl an Zeilen erst noch weiter erhöhen, bis es in einem Script-Crash resultierte.)


"Falls das Resultat nicht einfach nur dermassen gut aussieht, sollten Sie nochmal von vorn anfangen..." - Manual

Check out my new game: Pogostuck: Rage With Your Friends
Re: Funktionsbegrenzung? [Re: Superku] #467198
07/20/17 11:05
07/20/17 11:05
Joined: Sep 2005
Posts: 352
Germany
preacherX Offline OP
Senior Member
preacherX  Offline OP
Senior Member

Joined: Sep 2005
Posts: 352
Germany
Interessant, dass du die Zeilen noch erhöhen musstest... Dann hat es vielleicht auch noch was mit dem eigenen System zu tun? Ist das jetzt ein Bug oder ist es eine unsichtbare Grenze? confused

Re: Funktionsbegrenzung? [Re: preacherX] #467201
07/20/17 14:06
07/20/17 14:06
Joined: Oct 2008
Posts: 679
Germany
Ayumi Offline
User
Ayumi  Offline
User

Joined: Oct 2008
Posts: 679
Germany
Ich hab das auch mal getestet und der crash kommt nach der doppelten Menge an Zeilen zustande. Am besten wendest du dich mal an JCL.

Aber abgesehen davon sollte eine Funktion auch nicht so riesig sein.
Versuch die Funktion zu separieren. (Stichwort Clean Code)

Re: Funktionsbegrenzung? [Re: Ayumi] #467212
07/21/17 08:20
07/21/17 08:20
Joined: Jul 2000
Posts: 27,977
Frankfurt
jcl Offline

Chief Engineer
jcl  Offline

Chief Engineer

Joined: Jul 2000
Posts: 27,977
Frankfurt
Es gibt tatsächlich eine Begrenzung für if, while und do. Es ist keine feste Zahl, sondrn der Compiler generiert eine interne Sprungtabelle mit einem Stack, der irgendwann überläuft. Die Grenze ist so hoch, dass sie in der Praxis keine Bedeutung hat, wohl aber bei Funktionen, die maschinell generiert werden. Wir haben das mit Zorro bemerkt, wo die Mustererkennung Code mit tausenden von if-Anweisungen generieren kann. Also bitte vernünftig programmieren.

Re: Funktionsbegrenzung? [Re: jcl] #467218
07/21/17 10:34
07/21/17 10:34
Joined: Sep 2005
Posts: 352
Germany
preacherX Offline OP
Senior Member
preacherX  Offline OP
Senior Member

Joined: Sep 2005
Posts: 352
Germany
Dann hab ich mit meinen nicht maschinell erstellten Monster-Code wohl den Jackpot geknackt! grin Aber Danke für den Hinweis, da muss ich wohl jetzt ein bißchen aufräumen.


Moderated by  old_bill, Tobias 

Gamestudio download | chip programmers | Zorro platform | shop | Data Protection Policy

oP group Germany GmbH | Birkenstr. 25-27 | 63549 Ronneburg / Germany | info (at) opgroup.de

Powered by UBB.threads™ PHP Forum Software 7.7.1