2015-04-24 32 views
6

Anlıyorum, GDB baskı correcly bazı C tarzı onaltılık kayan nokta sayıları yapmak için yönetemez:GDB, C stili onaltılık kayan nokta sayılarını düzeltebilir mi?

İşte $1
GNU gdb (Ubuntu 7.7.1-0ubuntu5~14.04.2) 7.7.1 
Copyright (C) 2014 Free Software Foundation, Inc. 
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> 
This is free software: you are free to change and redistribute it. 
There is NO WARRANTY, to the extent permitted by law. Type "show copying" 
and "show warranty" for details. 
This GDB was configured as "x86_64-linux-gnu". 
Type "show configuration" for configuration details. 
For bug reporting instructions, please see: 
<http://www.gnu.org/software/gdb/bugs/>. 
Find the GDB manual and other documentation resources online at: 
<http://www.gnu.org/software/gdb/documentation/>. 
For help, type "help". 
Type "apropos word" to search for commands related to "word". 
(gdb) p 0xa.0p-4 
$1 = 6 

0.625 olmalı ama benim GDB ondalık 10 olarak 0xa.0p görmek gibi görünüyor ve bir sonraki ek yapar -4. GDB'nin yazdırmasını istediğim şeyin nesi var? GDB'nin onaltılık şamandıraları nasıl işleyeceğiyle ilgili hiçbir belge bulamadım.

cevap

3

GDB'nin yazdırmasını istediğimde sorun nedir?

Görünüşe göre gdb ile bir hatadır.

Negatif bir üs ile onaltılı kayan nokta sabitleri gdb ile yanlış sonuç verir.

Ben olumlu bir üs Linux ve onaltılık kayan nokta sabitler son kaynak yayını gdb 7.9 (Feb 20, 2015) ile çalıştı desteklenir:

(gdb) p/f 0x00.1p0 
$1 = 0.0625 
(gdb) p/f 0x00.1p1 
$2 = 0.125 

ama üs negatif ise, o zaman sonuç yanlıştır:

(gdb) p/f 0x00.1p-1 
$3 = -0.9375 

sağ ve beklenen sonuç 0.031250 olduğunu.

+0

@hdl Gdb Bugzilla'da açık bir hata bulamıyorum https://www.sourceware.org/bugzilla birini açmak ister misiniz? Aksi takdirde kendim yazabilirim. – ouah

+0

'Geçersiz numara' hatası için bkz. Http://stackoverflow.com/questions/24865689/change-decimal-separator-in-gdb#comment38649027_24865689 – hdl

+0

@hdl iyi nokta, gereksiz seslerden kaçınmak için cevabımın bu noktasını kaldırırım – ouah

İlgili konular