home *** CD-ROM | disk | FTP | other *** search
- gdb debugging of assembly sources:
- write a function linestab() that generates a .stabd symbol
- independently of the input
- write a function filestab() to generate a .stabs symbol
- we need to take especial care with #line directives
- since we want to handle locore, and locore is passed thru cpp
- this could be tough
- outline of a solution:
- cpp sends us lines of the form
- # logical-line "logical-file" trash
- these lines are interpreted ahead of the gas preprocess pass
- in the starting state, the logical filename is the same
- as the real filename (in case there're no #lines)
- the initial logical line number is 1
- every time we're ready to process a new instruction line,
- if the source file has changed,
- emit a .stabs for the logical file
- emit a .stabd for the logical line
- bump the logical line number
- can gas eat multiple actual lines in one insn?
-
- i386 nits:
- jmp *$foo produces a short relative branch
- string quotes in comments
- Bill says gas eats text across newlines to find matches
- works fine for me
- I think it's most likely due to cpp
- make / no longer be a comment char
- it's now like the VAX: # is the only comment char
- incorrectly assembles lcall, int3, into, bsr/f instructions
- constant expressions fail if more than a few terms
- gives (low+2)*3+4*5 as an example
- works fine for me
- cpp seems to think $ is a valid literal
- use -$ in /usr/bin/cpp
-