qemu

2013-01-09 65 views
12

में gdb के साथ बूटलोडर डिबगिंग Freedos बूटलोडर के साथ एक समस्या प्रतीत होती है। (ऐसा प्रतीत होता है कि बूटकोड कुछ परिस्थितियों में कर्नेल नहीं ढूंढ सकता है।)qemu

तो मैं gdb के साथ qemu में बूटलोडर को डीबग करने का प्रयास कर रहा हूं। निर्देश कई विकि और स्वतंत्र रूप से उपलब्ध ऑनलाइन पाठ्यक्रम सामग्री पर पाया के बाद, मैं qemu इस

qemu-system-i386 -fda fdboot.img -boot a -s -S 

की तरह चलाने और फिर इस

$ gdb 
(gdb) target remote localhost:1234 

मैं पहली बार 10 के माध्यम से कदम कर सकते हैं की तरह gdb कनेक्ट - 12 के साथ निर्देश si जो मुझे लगता है वह सागरियोस है।

लेकिन इससे पहले कि, जब मैं बूटलोडर कोड में कदम उठाने का प्रयास करता हूं, तो यह फ्रीडोज़ मेनू प्रॉम्प्ट तक सभी तरह से तोड़ने के बिना निष्पादन जारी रहता है। यह बूटलोडर कोड को पूरी तरह से छोड़ देता है जिसे मैं चरण-दर-चरण जांचना चाहता हूं क्योंकि इसे निष्पादित किया जाता है।

मुझे ऐसा करने की क्या ज़रूरत है ताकि मैं बूटलोडर के बावजूद कदम उठा सकूं?

[आप FreeDOS फ्लॉपी छवियों परियोजना वेबसाइट से यदि आप अपने आप को कोशिश करना चाहते हैं डाउनलोड कर सकते हैं।]

+0

वैकल्पिक सुझाव: BOCHS में एक अंतर्निहित डीबगर है जो आपको बूट क्षेत्र को एकल-चरणबद्ध करने देगा। –

उत्तर

10

qemu 1.3 और gdb 7.3.50.20111117 का उपयोग कर यहाँ ठीक काम करता है (आप यह नहीं कहा क्या संस्करणों आप प्रयोग किया जाता) । मैं जब तक मैं ऊब गया निर्देश के ही चरण टन करने में सक्षम था और बूटलोडर को पकड़ने के लिए एक ब्रेकपाइंट रखा:

(gdb) br *0x7c00 
Breakpoint 1 at 0x7c00 
(gdb) c 
Continuing. 

Breakpoint 1, 0x00007c00 in ??() 
(gdb) x/i $eip 
=> 0x7c00:  jmp 0x7c3e 

ध्यान दें कि मैं 16 बिट मोड पहले set architecture i8086 का उपयोग करने के gdb निर्धारित किया है।

+0

मैं gdb 7.5-ubuntu और qemu 1.2.0 (qemu-kvm-1.2.0 + noroms-0ubuntu2, डेबियन) का उपयोग कर रहा हूं। हां मैंने * 0x7c00 पर ब्रेकपॉइंटिंग करने की कोशिश की, लेकिन ऐसा लगता है कि उस पते से पहले, कभी भी तोड़ने, Freedos 'इंटरैक्टिव मेनू तक पहुंचने लगता है। मैंने बिना किसी अंतर के i8086 में आर्किटेक्चर सेट करने का भी प्रयास किया। मैं क्यूमू और जीडीबी को ट्रंक/हेड से संकलित करने की कोशिश करूंगा ताकि यह देख सके कि इससे कोई फर्क पड़ता है या नहीं। – rhlee

+0

हाँ, मैं हेड से क्यूमु संकलित करता हूं और मैं अब सभी निर्देशों के माध्यम से सफलतापूर्वक कदम उठा सकता हूं। – rhlee

+0

हेड से क्यूमु संकलित करने का क्या मतलब है? मैंने पहले कभी नहीं सुना है। मेरे पास यह वही मुद्दा है लेकिन मुझे नहीं पता कि HEAD का संकलन क्या है। विस्तृत करने के लिए परवाह? :) – Rob