Variables suspectes en RAM (fx@2.05 - %241) #1

Closed
opened 2020-03-02 11:40:26 +01:00 by Lephenixnoir · 2 comments
Owner

Dans les notes de %241, ces variables sont mentionnées :

0x88009e84 (u8[20])
  ?????
0x88009e84 (u8)
  1 = <0x88009e84> can be cleared 
  0 = <0x88009e84> can not be cleared 

Je suppose que l'entier est supposé contrôler le buffer, mais il est à la même adresse ! Est-ce que le buffer aurait un indicateur interne ?

Dans les notes de %241, ces variables sont mentionnées : ``` 0x88009e84 (u8[20]) ????? 0x88009e84 (u8) 1 = <0x88009e84> can be cleared 0 = <0x88009e84> can not be cleared ``` Je suppose que l'entier est supposé contrôler le buffer, mais il est à la même adresse ! Est-ce que le buffer aurait un indicateur interne ?
Collaborator

Mince je me suis trompé, voila la version corrigée:

0x88009e70 (u8[20])
  ?????
0x88009e84 (u8)
  1 = <0x88009e70> can be cleared 
  0 = <0x88009e70> can not be cleared

L'adresse 0x88009e84 sert d'indicateur pour savoir si le buffer 0x88009e70 (qui fait 20 octets) peut être modifié ou non.

Ça pourrait s'apparenter à un sémaphore (car les interruptions sont systématiquement bloquées quand les buffers sont utilisés) ce qui signifierait que les buffers sont partagées entes l'add-in en cours d'exécution et le menu (?)

Mince je me suis trompé, voila la version corrigée: ``` 0x88009e70 (u8[20]) ????? 0x88009e84 (u8) 1 = <0x88009e70> can be cleared 0 = <0x88009e70> can not be cleared ``` L'adresse `0x88009e84` sert d'indicateur pour savoir si le buffer `0x88009e70` (qui fait 20 octets) peut être modifié ou non. Ça pourrait s'apparenter à un sémaphore (car les interruptions sont systématiquement bloquées quand les buffers sont utilisés) ce qui signifierait que les buffers sont partagées entes l'add-in en cours d'exécution et le menu (?)
Author
Owner

Hmm, je vois. Ça ressemble à un verrou, en effet. Ce n'est pas automatiquement un sémaphore, qui est un truc plus compliqué qui compte des accès mais peut autoriser plusieurs personnes à accéder à la donnée...

En tous cas, je pense qu'on en saurait plus assez vite si on était capables de savoir quand et comment s'exécute le menu principal.

  • Est-ce dans une sous-fonction de GetKeyWait(), sur la pile de l'add-in ?
  • Est-ce dans un contexte fixe du système avec des longjmp() ?
  • Est-ce dans un gestionnaire d'interruptions (sait-on jamais) ?
Hmm, je vois. Ça ressemble à un verrou, en effet. Ce n'est pas automatiquement un sémaphore, qui est un truc plus compliqué qui compte des accès mais peut autoriser plusieurs personnes à accéder à la donnée... En tous cas, je pense qu'on en saurait plus assez vite si on était capables de savoir quand et comment s'exécute le menu principal. * Est-ce dans une sous-fonction de GetKeyWait(), sur la pile de l'add-in ? * Est-ce dans un contexte fixe du système avec des longjmp() ? * Est-ce dans un gestionnaire d'interruptions (sait-on jamais) ?
Sign in to join this conversation.
No Label
No Milestone
No Assignees
2 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: Lephenixnoir/fxdoc#1
No description provided.