Intermixing source code with disassembly
Teng Chee Wan Philip
tcheewan at ntu.edu.sg
Sun Apr 6 06:03:33 UTC 2008
Thanks, Chris. I tried the following. The line number gets inserted
(That is a positive step. :) ) but the disassembled code is still not
intermixed with the application source.
sparc-rtems4.8-objdump -D --line-numbers --source --demangle app.exe
There is some differences between code disassembled for the RTEMS OS and
the application. I extracted part of it out for illustration.
Disassembled code intermixed with RTEMS source
=====================================
0200ddec <bsp_start>:
bsp_start():
C:/Msys/1.0/home/PhilipTeng/rtems-4.8/rtems-4.8.0/c/src/lib/libbsp/sparc
/shared/bspstart.c:119
*
* This routine does the bulk of the system initialization.
*/
void bsp_start( void )
{
200ddec: 9d e3 bf 98 save %sp, -104, %sp
C:/Msys/1.0/home/PhilipTeng/rtems-4.8/rtems-4.8.0/c/src/lib/libbsp/sparc
/shared/bspstart.c:137
* This should be enough interrupt stack.
*/
Cpu_table.interrupt_stack_size = CONFIGURE_INTERRUPT_STACK_MEMORY;
work_space_start =
200ddf0: 03 00 80 01 sethi %hi(0x2000400), %g1
200ddf4: 23 00 8b 41 sethi %hi(0x22d0400), %l1
200ddf8: da 00 63 c0 ld [ %g1 + 0x3c0 ], %o5
200ddfc: 82 14 63 dc or %l1, 0x3dc, %g1
200de00: c8 00 60 04 ld [ %g1 + 4 ], %g4
C:/Msys/1.0/home/PhilipTeng/rtems-4.8/rtems-4.8.0/c/src/lib/libbsp/sparc
/shared/bspstart.c:128
* Set up our hooks
* Make sure libc_init is done before drivers initialized so that
* they can use atexit()
*/
Cpu_table.pretasking_hook = bsp_pretasking_hook; /* init libc, etc.
*/
200de04: 03 00 80 37 sethi %hi(0x200dc00), %g1
200de08: 82 10 62 64 or %g1, 0x264, %g1 ! 200de64
<bsp_pretasking_hook>
200de0c: 07 00 8b 41 sethi %hi(0x22d0400), %g3
Disassembled code intermixed with line number but not source
==============================================
c:\msys\1.0\home\PhilipTeng\app/app.c:188
20013e4: 40 00 1b 78 call 20081c4 <canMastInit>
20013e8: 90 10 20 04 mov 4, %o0
20013ec: 80 a2 20 01 cmp %o0, 1
20013f0: 22 80 00 8b be,a 200161c <Init+0x43c>
20013f4: 11 00 80 8f sethi %hi(0x2023c00), %o0
c:\msys\1.0\home\PhilipTeng\app/app.c:194
20013f8: 11 00 80 8f sethi %hi(0x2023c00), %o0
20013fc: 40 00 6f 15 call 201d050 <puts>
2001400: 90 12 23 d0 or %o0, 0x3d0, %o0 ! 2023fd0
<__DTOR_END__+0x300>
c:\msys\1.0\home\PhilipTeng\app/app.c:198
2001404: 40 00 18 8f call 2007640
<ccsds_initialisePacketLayer>
2001408: 90 10 20 01 mov 1, %o0
200140c: 80 a2 20 01 cmp %o0, 1
2001410: 22 80 00 8b be,a 200163c <Init+0x45c>
2001414: 11 00 80 8f sethi %hi(0x2023c00), %o0
-----Original Message-----
From: Chris Johns [mailto:chrisj at rtems.org]
Sent: Sunday, April 06, 2008 6:01 AM
To: Teng Chee Wan Philip
Cc: rtems-users at rtems.com
Subject: Re: Intermixing source code with disassembly
Teng Chee Wan Philip wrote:
>
> I was trying to disassemble my executable and intermix source code
with
> the disassembly, but objdump did not managed to find the source code.
> Does anyone have any suggestions why this could be so? Are there any
> limitations on objdump or specific way that objdump uses to search for
> the source code?
>
> $ sparc-rtems4.8-objdump -d -S app.exe
>
You might want to check the Debugging Hints page in the Wiki:
http://www.rtems.org/wiki/index.php/DebuggingHints#Symbolic_Debug_Inform
ation
http://www.rtems.org/wiki/index.php/DebuggingHints#GDB_Cannot_Find_My_So
urce_Files
Let us know if this does not help.
Regards
Chris
More information about the users
mailing list