2015-12-25 13 views
5

Jestem debugowania mój program C++ z gdb. Mam trudności z ustawieniem prostej zmiennej double z powodu niemieckiego locale.Jak ustawić podwójną zmienną w gdb z niemieckimi ustawieniami narodowymi?

gdb nie przyjmuje wartości z kropkami dziesiętnymi. Wpisany w niemiecki przecinek dziesiętny (przecinek), gdb ignoruje wszystko po przecinku.

(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 

Pomyślałem mogę uniknąć tego problemu poprzez uruchomienie gdb z LC_ALL=EN gdb .... Ale ponieważ nie jest to łatwe, gdy pracuję poza moim IDE, chcę wiedzieć, czy jest inny sposób.

Jak niemiecki użytkownik może wprowadzić przecinek dziesiętny w gdb?

Odpowiedz

2

Wystarczy popatrzeć na tego błędu:
https://bugs.launchpad.net/ubuntu/+source/gdb/+bug/1341125
tam to może wyjaśnił, dlaczego to nie działa tak, jak chcemy.

Można spróbować obejście jak

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

jeśli liczby są tak proste, jak 4.3.

+0

Ten błąd sugeruje również obejście problemu 'LC_NUMERIC = C gdb'. –