Tudom, hogy a

(gdb) p var_name $1 = "varvalue" 

használatával ki tudom adni egy változó értékét van-e mód egy változó értékének beállítására a gdb-vel való hibakeresés közben? Úgy tűnik, hogy a dokumentum, amelyet nem használok, rendelkezik ezzel a paranccsal.

Szerkesztés

Azóta megtudtam, hogy megváltoztathatom az állapotot objektumokat a memóriában a funkcióik egyszerű meghívásával! Tehát egy std::string típusú objektum módosításához egyszerűen hívja meg a assign függvényt az alábbiak szerint:

(gdb) call str.assign("New Value") 

Köszönöm.

Válasz

A Google a barátod:

Például, ha a programod változó szélességű, akkor hibaüzenetet kapsz, ha új értéket próbálsz beállítani csak a `beállított szélességgel = 13 “, mert a GDB rendelkezik a következő parancssori szélességgel:

 (gdb) whatis width type = double (gdb) p width $4 = 13 (gdb) set width=47 Invalid syntax in expression. 

Az érvénytelen kifejezés természetesen `= 47″. A program változó szélességének tényleges beállításához használja a következőt:

 (gdb) set var width=47 

A szükséges információkat a következő dokumentumban találhatja meg:

Megjegyzések

Válasz

Kicsit később, de egy string változó beállításához meg kell próbáld ki ezt:

gdb set var string_variable = “new_string_variable”

A karakterek számának meg kell egyeznie a két változó definíciónál, hogy a változást megfelelően alkalmazni lehessen. Idézeteket kell alkalmazni az új változóra.

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük