Go to Post Downsides: it's highly toxic and recognized as a carcinogen in CA. Upsides: Basically everything else - lethc [more]
Home
Go Back   Chief Delphi > Technical > Programming > C/C++
CD-Media   CD-Spy  
portal register members calendar search Today's Posts Mark Forums Read FAQ rules

 
Reply
Thread Tools Rating: Thread Rating: 2 votes, 5.00 average. Display Modes
  #1   Spotlight this post!  
Unread 20-01-2009, 18:30
GeneralFailure GeneralFailure is offline
Registered User
no team
 
Join Date: Jan 2009
Location: Virginia
Posts: 3
GeneralFailure is an unknown quantity at this point
Disassemble VxWorks (WindRiver) ELF Binaries?

Can anyone tell me or point me towards the documentation that explains how to disassemble a VxWorks (WindRiver) ELF binary?

I'm able to get an GNU objdump-esque memory map by clicking on binaries that have been built, but when I choose the disassembly option, I get a blank screen.

I do not want to interactively disassemble the binary on the target, but only check on the location of a specific (fatal) exception in application code.
Reply With Quote
  #2   Spotlight this post!  
Unread 20-01-2009, 18:50
gvarndell's Avatar
gvarndell gvarndell is offline
Software Engineer
AKA: Addi's and Georgie's Dad
FRC #1629 (GaCo)
Team Role: Parent
 
Join Date: Jan 2009
Rookie Year: 2008
Location: Grantsville, Maryland
Posts: 350
gvarndell has a reputation beyond reputegvarndell has a reputation beyond reputegvarndell has a reputation beyond reputegvarndell has a reputation beyond reputegvarndell has a reputation beyond reputegvarndell has a reputation beyond reputegvarndell has a reputation beyond reputegvarndell has a reputation beyond reputegvarndell has a reputation beyond reputegvarndell has a reputation beyond reputegvarndell has a reputation beyond repute
Re: Disassemble VxWorks (WindRiver) ELF Binaries?

Quote:
Originally Posted by GeneralFailure View Post
Can anyone tell me or point me towards the documentation that explains how to disassemble a VxWorks (WindRiver) ELF binary?

I'm able to get an GNU objdump-esque memory map by clicking on binaries that have been built, but when I choose the disassembly option, I get a blank screen.

I do not want to interactively disassemble the binary on the target, but only check on the location of a specific (fatal) exception in application code.
You have objdump -- it's called objdumpppc (yes, 3 p's).
Use a vxWorks development shell and it will be in your path.
Programs->Wind River->VxWorks 6.3 and General Purpose Technologies->VxWorks Development Shell.
Reply With Quote
  #3   Spotlight this post!  
Unread 20-01-2009, 19:23
gvarndell's Avatar
gvarndell gvarndell is offline
Software Engineer
AKA: Addi's and Georgie's Dad
FRC #1629 (GaCo)
Team Role: Parent
 
Join Date: Jan 2009
Rookie Year: 2008
Location: Grantsville, Maryland
Posts: 350
gvarndell has a reputation beyond reputegvarndell has a reputation beyond reputegvarndell has a reputation beyond reputegvarndell has a reputation beyond reputegvarndell has a reputation beyond reputegvarndell has a reputation beyond reputegvarndell has a reputation beyond reputegvarndell has a reputation beyond reputegvarndell has a reputation beyond reputegvarndell has a reputation beyond reputegvarndell has a reputation beyond repute
Re: Disassemble VxWorks (WindRiver) ELF Binaries?

There's a much easier way to disassemble -- if you're connected to the cRIO with Workbench debugger.
Use the Debug Symbol Browser.
Attached Thumbnails
Click image for larger version

Name:	wb-dis.PNG
Views:	614
Size:	37.9 KB
ID:	7185  
Reply With Quote
  #4   Spotlight this post!  
Unread 20-01-2009, 19:27
GeneralFailure GeneralFailure is offline
Registered User
no team
 
Join Date: Jan 2009
Location: Virginia
Posts: 3
GeneralFailure is an unknown quantity at this point
Re: Disassemble VxWorks (WindRiver) ELF Binaries?

Quote:
Originally Posted by gvarndell View Post
You have objdump -- it's called objdumpppc (yes, 3 p's).
Use a vxWorks development shell and it will be in your path.
Programs->Wind River->VxWorks 6.3 and General Purpose Technologies->VxWorks Development Shell.
Perfect, this is exactly what I needed to get the disassembly.

Any tips for the address space? The exception address doesn't match any of the addresses in the binary -- I assume they've been relocated.

I've got a Task address, but it doesn't seem to correspond to an address in the ELF binary either.
Reply With Quote
  #5   Spotlight this post!  
Unread 20-01-2009, 19:29
GeneralFailure GeneralFailure is offline
Registered User
no team
 
Join Date: Jan 2009
Location: Virginia
Posts: 3
GeneralFailure is an unknown quantity at this point
Re: Disassemble VxWorks (WindRiver) ELF Binaries?

Quote:
Originally Posted by gvarndell View Post
There's a much easier way to disassemble -- if you're connected to the cRIO with Workbench debugger.
Use the Debug Symbol Browser.
This would be the preferred method I would use if the target still had the binary to be debugged on it. I'm trying to debug this off-line.
Reply With Quote
  #6   Spotlight this post!  
Unread 20-01-2009, 19:41
gvarndell's Avatar
gvarndell gvarndell is offline
Software Engineer
AKA: Addi's and Georgie's Dad
FRC #1629 (GaCo)
Team Role: Parent
 
Join Date: Jan 2009
Rookie Year: 2008
Location: Grantsville, Maryland
Posts: 350
gvarndell has a reputation beyond reputegvarndell has a reputation beyond reputegvarndell has a reputation beyond reputegvarndell has a reputation beyond reputegvarndell has a reputation beyond reputegvarndell has a reputation beyond reputegvarndell has a reputation beyond reputegvarndell has a reputation beyond reputegvarndell has a reputation beyond reputegvarndell has a reputation beyond reputegvarndell has a reputation beyond repute
Re: Disassemble VxWorks (WindRiver) ELF Binaries?

Quote:
Originally Posted by GeneralFailure View Post
Perfect, this is exactly what I needed to get the disassembly.

Any tips for the address space? The exception address doesn't match any of the addresses in the binary -- I assume they've been relocated.

I've got a Task address, but it doesn't seem to correspond to an address in the ELF binary either.
What is the exception? What is the address?
The exception address is where the PC was when the exception happened.
It's probably in one of the DKMs that get downloaded to the target.
This can be tricky because you can't easily 'predict' where the kernel will load DKMs.
However, you can 'see' where they actually got loaded by typing 'moduleShow' in the taget console.
Reply With Quote
Reply


Thread Tools
Display Modes Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Windriver LAC McGurky C/C++ 12 25-02-2009 18:38
WindRiver Programming dnrobotics11 C/C++ 4 19-01-2009 19:43
compiling in windriver koreabell Programming 4 05-01-2009 15:32
The Happy Christmas Elf Ken Loyd Chit-Chat 6 13-12-2003 00:05


All times are GMT -5. The time now is 13:21.

The Chief Delphi Forums are sponsored by Innovation First International, Inc.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi