- use perl script "makesym.perl" to produce a symbol table that the

Bochs debugger can read
This commit is contained in:
Bryce Denney 2002-11-24 22:45:40 +00:00
parent 5dc0a6ab61
commit 44a003c3ad
2 changed files with 41 additions and 6 deletions

View File

@ -54,12 +54,8 @@ LOCAL_CXXFLAGS =
bios: BIOS-bochs-latest BIOS-bochs-2-processors BIOS-bochs-4-processors BIOS-bochs-8-processors
clean:
@RMCOMMAND@ *.o
@RMCOMMAND@ *.a
@RMCOMMAND@ _rombios_.c
@RMCOMMAND@ as86-sym.txt
@RMCOMMAND@ ld86-sym.txt
@RMCOMMAND@ rombios.txt
@RMCOMMAND@ *.o *.a _rombios_.c as86-sym.txt ld86-sym.txt
@RMCOMMAND@ rombios*.txt rombios*.sym
dist-clean: clean bios-clean
@RMCOMMAND@ Makefile
@ -76,26 +72,34 @@ BIOS-bochs-latest: rombios.c
bcc -o rombios.s -C-c -D__i86__ -0 -S _rombios_.c
sed -e 's/^\.text//' -e 's/^\.data//' rombios.s > _rombios_.s
as86 _rombios_.s -b tmp.bin -u- -w- -g -0 -j -O -l rombios.txt
-perl ${srcdir}/makesym.perl < rombios.txt > rombios.sym
mv tmp.bin BIOS-bochs-latest
rm -f _rombios_.s
BIOS-bochs-2-processors: rombios.c
gcc -DBX_SMP_PROCESSORS=2 -E $< > _rombios_.c
bcc -o rombios.s -C-c -D__i86__ -0 -S _rombios_.c
sed -e 's/^\.text//' -e 's/^\.data//' rombios.s > _rombios_.s
as86 _rombios_.s -b tmp.bin -u- -w- -g -0 -j -O -l rombios2.txt
-perl ${srcdir}/makesym.perl < rombios2.txt > rombios2.sym
mv tmp.bin BIOS-bochs-2-processors
rm -f _rombios_.s
BIOS-bochs-4-processors: rombios.c
gcc -DBX_SMP_PROCESSORS=4 -E $< > _rombios_.c
bcc -o rombios.s -C-c -D__i86__ -0 -S _rombios_.c
sed -e 's/^\.text//' -e 's/^\.data//' rombios.s > _rombios_.s
as86 _rombios_.s -b tmp.bin -u- -w- -g -0 -j -O -l rombios4.txt
-perl ${srcdir}/makesym.perl < rombios4.txt > rombios4.sym
mv tmp.bin BIOS-bochs-4-processors
rm -f _rombios_.s
BIOS-bochs-8-processors: rombios.c
gcc -DBX_SMP_PROCESSORS=8 -E $< > _rombios_.c
bcc -o rombios.s -C-c -D__i86__ -0 -S _rombios_.c
sed -e 's/^\.text//' -e 's/^\.data//' rombios.s > _rombios_.s
as86 _rombios_.s -b tmp.bin -u- -w- -g -0 -j -O -l rombios8.txt
-perl ${srcdir}/makesym.perl < rombios8.txt > rombios8.sym
mv tmp.bin BIOS-bochs-8-processors
rm -f _rombios_.s

31
bochs/bios/makesym.perl Executable file
View File

@ -0,0 +1,31 @@
#!/usr/bin/perl
#
# $Id: makesym.perl,v 1.1 2002-11-24 22:45:40 bdenney Exp $
#
# Read output file from as86 (e.g. rombios.txt) and write out a symbol
# table suitable for the Bochs debugger.
#
$WHERE_BEFORE_SYM_TABLE = 0;
$WHERE_IN_SYM_TABLE = 1;
$WHERE_AFTER_SYM_TABLE = 2;
$where = $WHERE_BEFORE_SYM_TABLE;
while (<STDIN>) {
chop;
if ($where == WHERE_BEFORE_SYM_TABLE && /^Symbols:/) {
$where = $WHERE_IN_SYM_TABLE;
} elsif ($where == $WHERE_IN_SYM_TABLE && /^$/) {
$where = $WHERE_AFTER_SYM_TABLE;
}
if ($where == $WHERE_IN_SYM_TABLE) {
@F = split (/\s+/);
($name[0], $junk, $addr[0], $junk, $name[1], $junk, $addr[1]) = @F;
foreach $col (0,1) {
next if length $addr[$col] < 1;
$addr[$col] =~ tr/A-Z/a-z/;
$addr[$col] = "000f" . $addr[$col];
print "$addr[$col] $name[$col]\n";
}
}
}