Precedente :: Successivo |
Autore |
Messaggio |
sefiroths Mortale devoto

Registrato: 06/10/10 11:45 Messaggi: 5
|
Inviato: 20 Apr 2011 15:37 Oggetto: tool per risolvere problemi legati alla memoria accessi, ecc |
|
|
ho un problema con un progetto.
lavoro con xcode, objective-c, ma penso che la domanda sia generale.
nel corso del programma una variabile, di cui cambio il valore SOLO in un punto con un assegnamento, in realtà, cambia valore anche in altri momenti assumendo valori indefiniti. ho controllato r icontrollato, ma non riesco a capire chi e come faccia ad accedervi.
penso sia un problema legato a qualche puntatore ma tuttora non sono riuscito a capire dove.
inoltre, mettendo delle print o NSLog tutto funziona benissimo come se nessuno vi accedesse....
a qualcuno è mai capitato?come risolvete il problema?
speravo che esistesse qualche tool, o qualche breakpoint on memory access, o bho...
grazie |
|
Top |
|
 |
SverX Supervisor Macchinisti


Registrato: 25/03/02 12:16 Messaggi: 11810 Residenza: Tokelau
|
Inviato: 20 Apr 2011 15:42 Oggetto: |
|
|
sì, di solito si usano i breakpoint on memory access (write) o similare, se non puoi usare quello puoi provare con una procedura di test chiamata un po' qua e un po' la finchè non isoli il problema.
Comunque facilmente è un buffer overrun, ovvero hai un array di n elementi e scrivi oltre l'ultimo, andando a sovrascrivere le variabili che hai definito (o allocato) dopo... |
|
Top |
|
 |
sefiroths Mortale devoto

Registrato: 06/10/10 11:45 Messaggi: 5
|
Inviato: 20 Apr 2011 16:13 Oggetto: |
|
|
la cosa ancora più strana è che:
nel simulatore iphone le cose funzionano bene,
nel device vero e proprio, lì arrivano i problemi, forse perchè la memoria essendo più piccola, ci sono più possibilità di conflitti? |
|
Top |
|
 |
freemind Supervisor sezione Programmazione


Registrato: 04/04/07 21:28 Messaggi: 4643 Residenza: Internet
|
Inviato: 20 Apr 2011 17:07 Oggetto: |
|
|
Ciao,
non programma per iphone ma se non erro c'è la possibilità di testare l'app sul terminale in modalità debug così da poter debuggare sul dispositivo e non sull'emulatore.
Il problema è che 9/10 l'emulatore potrebbe pulire aree di memoria facendole trovare pulite al programma prima che questo allochi le varie cosine, sia prima dell'esecuzione sia durante.
Se ciò avvenisse è tu hai qualche cosa che sporca la ram, con l'emulatore non riusciresti a beccare la cosa.
Puoi provare come dice SverX a mettere dei breakpoint con il debugger e vedere che succede ma se è vero che puoi fare il debug diretto nel dispositivo, fallo da lì che hai più probabilità di beccare la cosa. |
|
Top |
|
 |
sefiroths Mortale devoto

Registrato: 06/10/10 11:45 Messaggi: 5
|
Inviato: 26 Apr 2011 10:44 Oggetto: |
|
|
ok grazie.
proverò |
|
Top |
|
 |
|