- use perl script "makesym.perl" to produce a symbol table that the
Bochs debugger can read
This commit is contained in:
parent
5dc0a6ab61
commit
44a003c3ad
@ -54,12 +54,8 @@ LOCAL_CXXFLAGS =
|
|||||||
bios: BIOS-bochs-latest BIOS-bochs-2-processors BIOS-bochs-4-processors BIOS-bochs-8-processors
|
bios: BIOS-bochs-latest BIOS-bochs-2-processors BIOS-bochs-4-processors BIOS-bochs-8-processors
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
@RMCOMMAND@ *.o
|
@RMCOMMAND@ *.o *.a _rombios_.c as86-sym.txt ld86-sym.txt
|
||||||
@RMCOMMAND@ *.a
|
@RMCOMMAND@ rombios*.txt rombios*.sym
|
||||||
@RMCOMMAND@ _rombios_.c
|
|
||||||
@RMCOMMAND@ as86-sym.txt
|
|
||||||
@RMCOMMAND@ ld86-sym.txt
|
|
||||||
@RMCOMMAND@ rombios.txt
|
|
||||||
|
|
||||||
dist-clean: clean bios-clean
|
dist-clean: clean bios-clean
|
||||||
@RMCOMMAND@ Makefile
|
@RMCOMMAND@ Makefile
|
||||||
@ -76,26 +72,34 @@ BIOS-bochs-latest: rombios.c
|
|||||||
bcc -o rombios.s -C-c -D__i86__ -0 -S _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
|
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
|
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
|
mv tmp.bin BIOS-bochs-latest
|
||||||
|
rm -f _rombios_.s
|
||||||
|
|
||||||
BIOS-bochs-2-processors: rombios.c
|
BIOS-bochs-2-processors: rombios.c
|
||||||
gcc -DBX_SMP_PROCESSORS=2 -E $< > _rombios_.c
|
gcc -DBX_SMP_PROCESSORS=2 -E $< > _rombios_.c
|
||||||
bcc -o rombios.s -C-c -D__i86__ -0 -S _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
|
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
|
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
|
mv tmp.bin BIOS-bochs-2-processors
|
||||||
|
rm -f _rombios_.s
|
||||||
|
|
||||||
BIOS-bochs-4-processors: rombios.c
|
BIOS-bochs-4-processors: rombios.c
|
||||||
gcc -DBX_SMP_PROCESSORS=4 -E $< > _rombios_.c
|
gcc -DBX_SMP_PROCESSORS=4 -E $< > _rombios_.c
|
||||||
bcc -o rombios.s -C-c -D__i86__ -0 -S _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
|
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
|
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
|
mv tmp.bin BIOS-bochs-4-processors
|
||||||
|
rm -f _rombios_.s
|
||||||
|
|
||||||
BIOS-bochs-8-processors: rombios.c
|
BIOS-bochs-8-processors: rombios.c
|
||||||
gcc -DBX_SMP_PROCESSORS=8 -E $< > _rombios_.c
|
gcc -DBX_SMP_PROCESSORS=8 -E $< > _rombios_.c
|
||||||
bcc -o rombios.s -C-c -D__i86__ -0 -S _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
|
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
|
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
|
mv tmp.bin BIOS-bochs-8-processors
|
||||||
|
rm -f _rombios_.s
|
||||||
|
|
||||||
|
31
bochs/bios/makesym.perl
Executable file
31
bochs/bios/makesym.perl
Executable 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";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user