मैं उबंटू 12.10 64 बिट पर चल रहा हूं।जीडीबी शिकायत नहीं करता कोई स्रोत उपलब्ध नहीं
मैं जीडीबी में एक साधारण असेंबली कार्यक्रम डीबग करने की कोशिश कर रहा हूं। हालांकि जीडीबी का गुई मोड (-tui) मेरी असेंबली फ़ाइल के स्रोत कोड को खोजने में असमर्थ लगता है। मैंने वर्तमान में निर्देशिका में प्रोजेक्ट का पुनर्निर्माण किया है और Google को कोई फायदा नहीं हुआ है, कृपया मेरी मदद करें।
मेरे आदेशों:
nasm -f elf64 -g -F dwarf hello.asm
gcc -g hello.o -o hello
gdb -tui hello
डिबग जानकारी लोड किया जा रहा है, मैं() मुख्य में एक ब्रेकपाइंट लेकिन शीर्ष आधी स्क्रीन अभी भी कहते हैं, '[कोई स्रोत उपलब्ध]' सेट कर सकते हैं।
; hello.asm a first program for nasm for Linux, Intel, gcc
;
; assemble: nasm -f elf -l hello.lst hello.asm
; link: gcc -o hello hello.o
; run: hello
; output is: Hello World
SECTION .data ; data section
msg: db "Hello World",10 ; the string to print, 10=cr
len: equ $-msg ; "$" means "here"
; len is a value, not an address
SECTION .text ; code section
global main ; make label available to linker
main: ; standard gcc entry point
mov edx,len ; arg3, length of string to print
mov ecx,msg ; arg2, pointer to string
mov ebx,1 ; arg1, where to write, screen
mov eax,4 ; write command to int 80 hex
int 0x80 ; interrupt 80 hex, call kernel
mov ebx,0 ; exit code, 0=normal
mov eax,1 ; exit command to kernel
int 0x80 ; interrupt 80 hex, call kernel
कारण के लिए नीचे दिए गए उत्तर को हटाया गया। –
एक असेंबलर द्वारा उत्पादित एक प्रोग्राम में डीबग जानकारी नहीं है। कंपाइलर (उदा। 'Gcc -g') एंबलर निर्देश या संरचना के रूप में डीबग जानकारी का उत्पादन कर रहा है। तो आपके प्रश्न का असली अर्थ नहीं है। हालांकि, 'gdb' एक बार, चरण-दर-चरण, मशीन निर्देशों में एक बार चलाने में सक्षम है। –
क्या आपके पास इसके लिए कोई समाधान है? –