Ich experimentiere mit Python-interaktiven Modus in Gdb, und ich kann nicht herausfinden, wie man eine Variable von innen ändern. Ich weiß, wie man es ohne Python macht - set variable a = 10
.Lese/schreibe eine Variable/Symbol aus dem GDB-Python-Interactive-Modus
Ich verwende dieses Testprogramm:
#include <stdio.h>
int main(int argc, char *argv) {
int a;
printf("Enter a: ");
scanf("%d", &a);
printf("You entered: %d\n", a);
}
ich einen Haltepunkt nach dem scanf()
platziert haben, und wenn es ich geben Python interaktiven Modus getroffen wird. Jetzt möchte ich die Variable a
auf einen anderen Wert ändern. Ich versuchte mit a = 10
, aber es wurde nicht geändert, und der gleiche Wert, den ich in scanf()
eingegeben habe (in diesem Fall ist es 5) wurde stattdessen gedruckt.
(gdb) b main.c:6 Breakpoint 1 at 0x8048503: file main.c, line 6. (gdb) r Starting program: /home/sashoalm/Desktop/test/a.out Enter a: 5 Breakpoint 1, main (argc=1, argv=0xbffff1d4 "\214\363\377\277") at main.c:6 6 printf("You entered: %d\n", a); (gdb) python-interactive >>> a = 10 >>> (gdb) c Continuing. You entered: 5 [Inferior 1 (process 26133) exited normally]
Also, was ist der richtige Weg, es zu tun?