2015-12-25 10 views
5

Sto eseguendo il debug del mio programma C++ con gdb. Sto avendo difficoltà a impostare una semplice variabile double a causa delle impostazioni locali tedesche.Come impostare una doppia variabile in gdb con le impostazioni locali tedesche?

gdb non accetta valori con punto decimale. Digitato con virgola decimale tedesca (virgola), gdb ignora tutto dopo la virgola.

(gdb) p this->foodSupply 
$1 = 1 
(gdb) set this->foodSupply = 4.3 
Ungültige Nummer »4.3«. 
(gdb) p this->foodSupply 
$1 = 1 

(gdb) set this->foodSupply = 4,3 
(gdb) p this->foodSupply 
$3 = 4 

ho pensato che può evitare il problema eseguendo gdb con LC_ALL=EN gdb .... Ma dal momento che non è così facile quando si lavora fuori dal mio IDE, voglio sapere se c'è un altro modo.

Come può un utente tedesco digitare un punto decimale in gdb?

risposta

2

Date un'occhiata a questo bug:
https://bugs.launchpad.net/ubuntu/+source/gdb/+bug/1341125
C'è forse spiegato il motivo per cui non funziona come si desidera.

Si può provare una soluzione come

(gdb) set this->foodSupply = (double) 43/10 

se i numeri sono così semplici come 4.3.

+0

Questo bug suggerisce anche una soluzione alternativa per l'esecuzione di 'LC_NUMERIC = C gdb'. –

Problemi correlati