क्या कोई जीडीबी के इस व्यवहार की व्याख्या कर सकता है?
900 memset(&new_ckpt_info,'\0',sizeof(CKPT_INFO));
(gdb)
**903 prev_offset = cp_node->offset;**
(gdb)
**905 m_CPND_CKPTINFO_READ(ckpt_info,(char *)cb->shm_addr.ckpt_addr+sizeof(CKPT_** HDR),i_offset);
(gdb)
**903 prev_offset = cp_node->offset;**
(gdb)
**905 m_CPND_CKPTINFO_READ(ckpt_info,(char *)cb->shm_addr.ckpt_addr+sizeof(CKPT_ HDR),i_offset);**
(gdb)
**908 bitmap_offset = client_hdl/32;**
(gdb)
**910 bitmap_value = cpnd_client_bitmap_set(client_hdl%32);**
(gdb)
**908 bitmap_offset = client_hdl/32;**
(gdb)
**910 bitmap_value = cpnd_client_bitmap_set(client_hdl%32);**
(gdb)
**908 bitmap_offset = client_hdl/32;**
(gdb)
**910 bitmap_value = cpnd_client_bitmap_set(client_hdl%32);**
(gdb)
913 found = cpnd_find_exact_ckptinfo(cb , &ckpt_info , bitmap_offset , &offset , &prev_offset);
(gdb)
916 if(!found)
(gdb) p found
$1 = <value optimized out>
(gdb) set found=0
Left operand of assignment is not an lvalue.
लाइन 903 को निष्पादित करने के बाद फिर से 905 908 910 के लिए इसे क्यों निष्पादित किया जाता है?
एक और चीज found
एक bool
-टाइप वेरिएबल है, तो यह क्यों दिख रहा है value optimized out
? मैं इसका मान भी सेट नहीं कर पा रहा हूं found
।
यह एक कंपाइलर ऑप्टिमाइज़ेशन लगता है (इस मामले में इसके -O2
); मैं अभी भी का मूल्य कैसे निर्धारित कर सकता हूं found
?