Pārlūkot izejas kodu

chore: generate symbol file and debug info

greatbridf 3 gadi atpakaļ
vecāks
revīzija
b442fa0499
2 mainītis faili ar 36 papildinājumiem un 3 dzēšanām
  1. 35 2
      ldscript.ld
  2. 1 1
      make_symbol_table.sh

+ 35 - 2
ldscript.ld

@@ -1,4 +1,4 @@
-OUTPUT_FORMAT(binary)
+OUTPUT_FORMAT(elf32-i386)
 OUTPUT_ARCH(i386:i386)
 
 MEMORY
@@ -38,6 +38,40 @@ SECTIONS
         *(.bss*)
     } > WHOLE
 
+	/* Stabs debugging sections.  */
+    .stab          0 : { *(.stab) }
+    .stabstr       0 : { *(.stabstr) }
+    .stab.excl     0 : { *(.stab.excl) }
+    .stab.exclstr  0 : { *(.stab.exclstr) }
+    .stab.index    0 : { *(.stab.index) }
+    .stab.indexstr 0 : { *(.stab.indexstr) }
+    .comment       0 : { *(.comment) }
+    /* DWARF debug sections.
+       Symbols in the DWARF debugging sections are relative to the beginning
+       of the section so we begin them at 0.  */
+    /* DWARF 1 */
+    .debug          0 : { *(.debug) }
+    .line           0 : { *(.line) }
+    /* GNU DWARF 1 extensions */
+    .debug_srcinfo  0 : { *(.debug_srcinfo) }
+    .debug_sfnames  0 : { *(.debug_sfnames) }
+    /* DWARF 1.1 and DWARF 2 */
+    .debug_aranges  0 : { *(.debug_aranges) }
+    .debug_pubnames 0 : { *(.debug_pubnames) }
+    /* DWARF 2 */
+    .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }
+    .debug_abbrev   0 : { *(.debug_abbrev) }
+    .debug_line     0 : { *(.debug_line) }
+    .debug_frame    0 : { *(.debug_frame) }
+    .debug_str      0 : { *(.debug_str) }
+    .debug_loc      0 : { *(.debug_loc) }
+    .debug_macinfo  0 : { *(.debug_macinfo) }
+    /* SGI/MIPS DWARF 2 extensions */
+    .debug_weaknames 0 : { *(.debug_weaknames) }
+    .debug_funcnames 0 : { *(.debug_funcnames) }
+    .debug_typenames 0 : { *(.debug_typenames) }
+    .debug_varnames  0 : { *(.debug_varnames) }
+
     .end : AT(0x0ffffff)
     {
         BYTE(0x00);
@@ -46,6 +80,5 @@ SECTIONS
     /DISCARD/ :
     {
         *(.comment)
-        *(.debug*)
     }
 }

+ 1 - 1
make_symbol_table.sh

@@ -6,5 +6,5 @@ objdump -t ./build/kernel.out | dd of=./build/dump.txt
 
 awk '($1 ~ /[0-9]/) && ($4 != "*ABS*") && ($4 != ".text.bootsect") && ($3 != ".text.bootsect") && ($4 != ".magicnumber") {print $1 " " $NF}' ./build/dump.txt | dd of=./build/kernel.sym
 
-rm ./build/kernel.out
+#rm ./build/kernel.out
 rm ./build/dump.txt