Ik weet dat ik de waarde van een variabele kan uitvoeren met

(gdb) p var_name $1 = "varvalue" 

Is is er een manier om de waarde van een variabele in te stellen tijdens het debuggen met gdb? Het document dat ik gebruik, lijkt deze opdracht niet te hebben.

Bewerken

Sindsdien heb ik geleerd dat ik de status kan veranderen van objecten in het geheugen door simpelweg hun functies aan te roepen! Dus om een object van het type std::string te wijzigen, roept u de assign functie als volgt aan:

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

Bedankt.

Antwoord

Google is je vriend:

Als je programma bijvoorbeeld een variabele breedte heeft, krijg je een foutmelding als je een nieuwe waarde probeert in te stellen met alleen `set width = 13 “, omdat GDB de opdracht heeft ingesteld breedte:

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

De ongeldige uitdrukking is natuurlijk = 47. Om de variabele breedte van het programma daadwerkelijk in te stellen, gebruikt u

 (gdb) set var width=47 

U kunt de benodigde informatie vinden in het volgende document :

Opmerkingen

Answer

Iets later, maar om een stringvariabele in te stellen, moet je probeer dit>

gdb set var string_variable = “new_string_variable”

Karakternummers moeten hetzelfde zijn voor de twee variabeldefinities, om de wijziging waar nodig toe te passen. Aanhalingstekens moeten worden toegepast op een nieuwe variabele.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *