Italian community of Lazarus and Free Pascal
Programmazione => Generale => Topic aperto da: bonmario - Gennaio 16, 2014, 08:05:59 am
-
Ciao a tutti,
supponiamo di avere la funzione
e di avere nel programma la seguente istruzione:
se sono in debug, c'è qualche trucco per vedere il risultato di pippo senza assegnarne il valore ad una variabile?
Grazie, Mario
-
Con Windows e il debugger di lazarus non ho trovato il modo.
Se volessi vedere il risultato "low level" dovresti controllare i registri del processore.
Alla fine della fiera il risultato è "depositato" dentro i registri. Questo implica che dovresti conoscere a menadito il "protocollo" che Freepascal implementa nelle chiamate.
A naso direi che può depositare il risultato in AX o EAX, ma questo vale per architetture Intel compatibili.
Non so per altri processori come ARM come possa funzionare ;)
Stilgar
-
è una cosa che farebbe tanto comodo anche a me ma credo che non si possa avere questa funzionalità (vorrebbe dire che il debugger lancia la funzione per poi rilanciarla quando si va avanti con il programma...)
puoi provare mettendo un breakpoint all'interno della funzione Pippo dove assegni il valore a result
-
Purtroppo al momento le uniche vie sono quelle che ti sono state proposte da Stilgar e Nomore
-
è una cosa che farebbe tanto comodo anche a me ma credo che non si possa avere questa funzionalità (vorrebbe dire che il debugger lancia la funzione per poi rilanciarla quando si va avanti con il programma...)
puoi provare mettendo un breakpoint all'interno della funzione Pippo dove assegni il valore a result
Nell'esempio che ho fatto prima, io metterei il breakpoint sull'istruzione "if", quindi sarebbe già stata eseguita la funzione.
La mia domanda deriva dal fatto che stavo debuggando un programma, e alla fine sono arrivato in un file "inc" di Lazarus, e volevo evitare di modificare quello e il sorgente .pas che lo usa.
Ciao, Mario
-
Nell'esempio che ho fatto prima, io metterei il breakpoint sull'istruzione "if", quindi sarebbe già stata eseguita la funzione.
no, il breakpoint si ferma prima dell'IF
-
Hai ragione ... quando ho la pancia piena ragiono meno !!!!
Ciao, Mario