我正在使用GDB在嵌入式设备上加载可执行文件.加载可执行文件时,GDB说:
xPSR: 0x01000000 pc: 0xf0094902 msp: 0x2001b508
Loading section .text, size 0x16240 lma 0x8000000
Loading section .data, size 0x8f0 lma 0x8016240
Start address 0x8000000, load size 92976
Run Code Online (Sandbox Code Playgroud)
据我所知,这pc是指令指针.我假设"起始地址"是起始地址pc.然而,在信息GDB是给我,起始地址(为0x8000000,这是偶然一样.text)是不一样的pc(0xf0094902).
pc和起始地址有什么区别?让起始地址相同是否有意义.text?
我假设程序计数器是您加载后但在开始运行之前的当前值.当你开始运行时,那么当然取决于处理器,但它很可能描述了开始执行加载代码的地址,在允许处理器再次运行之前设置程序计数器的地址.如果你运行然后快速停止你应该在.text范围内看到pc 0x80000000 + 0x16240的东西