Annonces Google
Serveur IRC
Serveur : irc.portlane.se
Canal : #AmigaNG
Activité du Site

Pages vues depuis 25/07/2007 : 25 476 011

  • Nb. de membres 187
  • Nb. d'articles 1 271
  • Nb. de forums 19
  • Nb. de sujets 20
  • Nb. de critiques 24

Top 10  Statistiques

Index du forum »»  Logiciels »» Mais comment definit on la stack de Arexx??

Mais comment definit on la stack de Arexx??#2001

4Contributeur(s)
thelliersinisrusastrofrazzd10h
3 Modérateur(s)
K-LElwoodcorto
thellier thelliericon_post
Hello

J'ai enfin compris pourquoi ma Microbe3D.library plante avec arexx
(qui a le support arexx et est donc appellable depuis des scripts arexx)

J'ai rajouté ceci au code de ma .library
mytask=FindTask(NULL);
a=(ULONG)mytask->tc_SPLower;
b=(ULONG)mytask->tc_SPUpper;
s=b-a;
Et la taille s de la stack est 4096 octets :-(

Si je change la stack dans l'icone du script = ca reste à 4096
Si je change la stack dans l'icone de rexxmast= ca reste à 4096
Si je lance depuis le shell idem

:-/

Mais comment definit on la stack de Arexx??!?!?

Alain Thellier

?*?* Joyeux Noel à Tous ?*?*
sinisrus sinisrusicon_post
As tu essayer?
Address command stack 4096
--
Coin coin... amitheme.amiga-ng.org
Sam460 1,15Ghz - OS4.1FE - Radeon Saphir HD7750 R7 250E - 2Go de ram
astrofra astrofraicon_post
Ou sinon en passant un bloc mémoire custom via :     VOID StackSwap(struct StackSwapStruct *) ?
thellier thelliericon_post
Merci à tous
@sinisrus
Et ça marche comment : si je l'ajout au début du script arexx j'ai
"commande inconnue erreur 10 arexx server not active"

@astrofra
OK je ferai ça en dernier recours
Que deviens l'ancienne stack alors ? il faut la libérer ?


Alain
astrofra astrofraicon_post
@Alain
et bien, d'après cette Autodoc du XXe siècle, il semblerait qu'il soit possible d'appeler la fonction une nouvelle fois afin de restaurer la stack initiale, pour ensuite liberer la stack que tu as alloué toi. Ca se fait au moment de fermer la library, j'imagine ?
J'ignore si la methode est toujours valable sous OS4 :/

Edit : avec le lien c'est mieux...
http://amigadev.elowar.com/read/ADCD_2.1/Includes_and_Autodocs_3._guide/node023E.html

A1200 en Rack 1U custom | Pas de machine NG.
fra.planet-d.net

Message édité par : astrofra / 25-12-2014 15:00
Message édité par : astrofra / 25-12-2014 15:00
zzd10h zzd10hicon_post
@Alain

As-tu essayé la commande suivante dans ton REXX ?

 PRAGMA("STACK",99999) 

Et ensuite, tu peux vérifier le stack utilisé et alloué dans l'onglet "Tâches" de SysMon


Message édité par : zzd10h / 25-12-2014 16:04
thellier thelliericon_post
Oupps pour celle ci
"commande inconnue erreur 10 arexx server not active"
C'est que j'avais oublié de relancer rexxmast  = amnésie post noêl :-P

Après lancement de rexxmast alors les methodes de zzd10h et sinisrus ne marchent pas : la stack reste à 4096 et donc ça plante

Trop bizarre ...

Alain
thellier thelliericon_post
Ok les gars
j'ai hacké la rexxsyslib.library ainsi
RexxSysBase->rl_StackSize=80000;

et là CA MAAAARCHE :-)

plus aucunes erreurs avec Arexx :-) bon c'est un hack mais ça marche enfin

Aussi bien les scripts démos lancés tout seuls que mes fameux scripts lancés (ajoutés à) depuis demo-view

Reste à faire le ménage dans tout les tests et debugs que j'ai ajouté ces dernières semaines aux sources

Alain




Message édité par : thellier / 25-12-2014 19:37
sinisrus sinisrusicon_post
Yeahhh je savais que tu y arriverais t'es trop fort !
--
Coin coin... amitheme.amiga-ng.org
Sam460 1,15Ghz - OS4.1FE - Radeon Saphir HD7750 R7 250E - 2Go de ram
astrofra astrofraicon_post
RexxSysBase->rl_StackSize=80000;

ça reserve la mémoire ? Si ce n'est pas le cas, ça veut ptet dire que la stack se trouve sur un bloc de ram non allouée et non protégée et que c'est un coup de bol qu'il n'y'ait rien de vital à cette adresse là ? :D

Enfin bon, là ça sort clairement de mon domaine de compétence :p

Cool en tt cas.
A1200 en Rack 1U custom | Pas de machine NG.
fra.planet-d.net
Petites Annonces

0 annonce(s) publiée(s)

Consulter

AmigaOS 4.1

Laissez-vous tenter par
AmigaOS 4.1
AmiTheme

AmiTheme