- UID
- 1023166
- 性别
- 男
- 来自
- 燕山大学
|
二,在程序执行时期将函数加载,函数ovly_copy是一个memcpy函数,将函数从LMA复制到VMA上。当OverlayLoad(0)执行完后,overlay0函数主体便存在于VMA上,可正确的执行。
图表9为_ovly_table的内容,要标示每一个overlay section的vma, size, lma,和是否mapped。必须要注意的一点,_ovly_table要位在一个lma等于vma的区域里。
2. 调试Overlay的程序
开启自动overlay调试功能的gdb命令是overlay auto。当overlay auto开启后,对于使用者来说,与一般程序的调试方法相同。
图表8的最后一行_ovly_debug_event()的用途是让gdb能把断点加在正确的地址上,这一行要写在OverlayLoad的后面。必须要有这一行,gdb的自动overlay调试才能正常。
当用户加一个断点在被overlay的区域,gdb会在函数被加载之后(即为执行完OverlayLoad),遇到_ovly_debug_event时,自动的把断点加到overlay的地址上。
3. 参考数据
Overlay Commands https://sourceware.org/gdb/onlinedocs/gdb/Overlay-Commands.html
Automatic Overlay Debugging https://sourceware.org/gdb/onlin ... c-Overlay-Debugging
Debugging Programs That Use Overlays
http://davis.lbl.gov/Manuals/GDB/gdb_11.html
Andes BSP v3.2.0 User Manual
Chapter 12 “Linker Script Generation” |
|