引用 11 楼 singlerace 的回复:
eboot也是romimage生成的,不过它没有log输出所以你看不到。你可以手工运行romimage。方法是,在PB中Build OS --> Open Release Directory进入命令行,假设你的bootloader在你的BSP的src\bootloader\eboot目录下,运行:
romimage %_TARGETPLATROOT%\src\bootloader\eboot\eboot.bib
成功的话,在输出信息里找吧。
哇,太神奇了。。。真的找到了。这50分给你了。
我再加100分,希望还能获得别的问题的答案
1,stepldr,是不是同样的方法获得PDATA/DATA/TEXT段地址?我刚刚试验了,看上去是这样的,还是想确认下
2,NK下面的段地址是不是显示在makeimg.out里面,如下所示:
Module Section Start Length psize vsize Filler
---------------------- -------- --------- ------- ------- ------- ------
nk.exe .text 80301000 430080 429056 428668 o32_rva=00001000
nk.exe .pdata 8036a000 12288 8704 8536 o32_rva=00093000
......
nk.exe .KDATA 8099dffc 0 0 24576 FILLER->82000000
nk.exe .data 807ef9d4 1536 1536 141868 FILLER->82006000
3,TEXT表示代码段,data表示数据段,那么pdata和kdata是什么?代码段好理解,data段到底存些什么内容?我刚才修改了TEXT段地址,跟踪代码就指向了错误位置;但随便怎么修改data段地址,都不影响trace的,为什么呢?
4,有关DLL的问题,在这里我们可以看到,比方说coredll.dll:
Module coredll.dll at offset 01ffe000 data , 03f71000 code
coredll.dll .text 8036d000 495616 492544 492329 o32_rva=00001000
coredll.dll .rsrc 803e6000 28672 25600 25436 o32_rva=00082000
coredll.dll .data 806c9a6c 1418 1418 4772 FILLER
coredll.dll .pdata 80ffa000 9355 9355 20544
coredll.dll E32 804d0f80 112 FILLER
coredll.dll O32 80ed0ce0 96 FILLER
MODULES Section
Module Section Start Length psize vsize Filler
---------------------- -------- --------- ------- ------- ------- ------
coredll.dll FileName 805bcff0 12 FILLER
这上面的text/data/pdata/rsrc看上去是地址,那么最上面的那个offset 01ffe000 data是什么呢?怎么加也加不到data这个地址上啊,怎么回事?最下面的filename地址又是什么?跟上面的好像都不一样,又是怎么回事情呢?还有这个rsrc是什么?跟nk的内容好像不一样了,真是奇怪
问题比较多,分数一次只能加100分,不够明天再加分。
再次感谢singlerace!