Chief Delphi

Chief Delphi (http://www.chiefdelphi.com/forums/index.php)
-   C/C++ (http://www.chiefdelphi.com/forums/forumdisplay.php?f=183)
-   -   Missing Symbols (http://www.chiefdelphi.com/forums/showthread.php?t=102826)

rbmj 14-02-2012 18:46

Missing Symbols
 
Hi everyone,

When we compile and load our code onto the robot, the NetConsole output complains about missing symbols and unloads the FRC_UserProgram.out module. We know for a fact that everything is compiled correctly (no errors, no warnings, no nothing), we did a full make clean (using ucpp), AND the symbols ARE in the code (I ran all of them through wine c++filtppc.exe and looked up the definition of each function).

An objdump -t joysmooth.o, for example, only gives us these symbols:

joysmooth.o: file format elf32-big

SYMBOL TABLE:
00000000 l df *ABS* 00000000 joysmooth.cpp
00000000 l d .text 00000000 .text
00000000 l d .data 00000000 .data
00000000 l d .bss 00000000 .bss
00000000 l d .debug_abbrev 00000000 .debug_abbrev
00000000 l d .debug_info 00000000 .debug_info
00000000 l d .debug_line 00000000 .debug_line
00000000 l d .comment 00000000 .comment


There are probably 20 functions in the file, none of which show up in the symbol table.

GCC seems to only screw up certain ones though. Case in point- objdump -t main.o:

Code:

main.o:    file format elf32-big

SYMBOL TABLE:
00000000 l    df *ABS*        00000000 main.cpp
00000000 l    d  .text        00000000 .text
00000000 l    d  .data        00000000 .data
00000000 l    d  .bss        00000000 .bss
00000000 l    d  .debug_abbrev        00000000 .debug_abbrev
00000000 l    d  .debug_info        00000000 .debug_info
00000000 l    d  .debug_line        00000000 .debug_line
00000000 l    d  .gcc_except_table        00000000 .gcc_except_table
00000000 l    d  .rodata        00000000 .rodata
00000000 l    d  .gnu.linkonce.t._ZNSt6vectorIdSaIdEED1Ev        00000000 .gnu.linkonce.t._ZNSt6vectorIdSaIdEED1Ev
00000000 l    d  .gnu.linkonce.t._ZNKSt6vectorIdSaIdEE4sizeEv        00000000 .gnu.linkonce.t._ZNKSt6vectorIdSaIdEE4sizeEv
00000000 l    d  .gnu.linkonce.t._ZNSt6vectorIdSaIdEEixEj        00000000 .gnu.linkonce.t._ZNSt6vectorIdSaIdEEixEj
00000000 l    d  .gnu.linkonce.t._ZNSt6vectorIdSaIdEE5_TidyEv        00000000 .gnu.linkonce.t._ZNSt6vectorIdSaIdEE5_TidyEv
00000000 l    d  .gnu.linkonce.t._ZNSt6vectorIdSaIdEE5beginEv        00000000 .gnu.linkonce.t._ZNSt6vectorIdSaIdEE5beginEv
00000000 l    d  .gnu.linkonce.t._ZNKSt6vectorIdSaIdEE8iteratorplEi        00000000 .gnu.linkonce.t._ZNKSt6vectorIdSaIdEE8iteratorplEi
00000000 l    d  .gnu.linkonce.t._ZNKSt6vectorIdSaIdEE8iteratordeEv        00000000 .gnu.linkonce.t._ZNKSt6vectorIdSaIdEE8iteratordeEv
00000000 l    d  .gnu.linkonce.t._ZNSt6vectorIdSaIdEE8_DestroyEPdS2_        00000000 .gnu.linkonce.t._ZNSt6vectorIdSaIdEE8_DestroyEPdS2_
00000000 l    d  .gnu.linkonce.t._ZNSaIdE10deallocateEPdj        00000000 .gnu.linkonce.t._ZNSaIdE10deallocateEPdj
00000000 l    d  .gnu.linkonce.t._ZNSt6vectorIdSaIdEE8iteratorC1EPd        00000000 .gnu.linkonce.t._ZNSt6vectorIdSaIdEE8iteratorC1EPd
00000000 l    d  .gnu.linkonce.t._ZNSt6vectorIdSaIdEE14const_iteratorC2EPd        00000000 .gnu.linkonce.t._ZNSt6vectorIdSaIdEE14const_iteratorC2EPd
00000000 l    d  .gnu.linkonce.t._ZNSt6_RanitIdiPKdRS0_EC2Ev        00000000 .gnu.linkonce.t._ZNSt6_RanitIdiPKdRS0_EC2Ev
00000000 l    d  .gnu.linkonce.t._ZNSt6vectorIdSaIdEE8iteratorpLEi        00000000 .gnu.linkonce.t._ZNSt6vectorIdSaIdEE8iteratorpLEi
00000000 l    d  .gnu.linkonce.t._ZNKSt6vectorIdSaIdEE14const_iteratordeEv        00000000 .gnu.linkonce.t._ZNKSt6vectorIdSaIdEE14const_iteratordeEv
00000000 l    d  .gnu.linkonce.t._ZSt14_Destroy_rangeIdSaIdEEvPT_S2_RT0_        00000000 .gnu.linkonce.t._ZSt14_Destroy_rangeIdSaIdEEvPT_S2_RT0_
00000000 l    d  .gnu.linkonce.t._ZSt8_Ptr_catPdS_        00000000 .gnu.linkonce.t._ZSt8_Ptr_catPdS_
00000000 l    d  .gnu.linkonce.t._ZSt14_Destroy_rangeIdSaIdEEvPT_S2_RT0_St24_Scalar_ptr_iterator_tag        00000000 .gnu.linkonce.t._ZSt14_Destroy_rangeIdSaIdEEvPT_S2_RT0_St24_Scalar_ptr_iterator_tag
00000000 l    d  .gnu.linkonce.r._ZTV11robot_class        00000000 .gnu.linkonce.r._ZTV11robot_class
00000000 l    d  .gnu.linkonce.t._ZN11robot_classD1Ev        00000000 .gnu.linkonce.t._ZN11robot_classD1Ev
00000000 l    d  .gnu.linkonce.t._ZN11robot_classD0Ev        00000000 .gnu.linkonce.t._ZN11robot_classD0Ev
00000068 l    O .rodata        00000001 NiFpga_False
00000069 l    O .rodata        00000001 NiFpga_True
0000006c l    O .rodata        00000004 NiFpga_Status_Success
00000070 l    O .rodata        00000004 NiFpga_Status_FifoTimeout
00000074 l    O .rodata        00000004 NiFpga_Status_MemoryFull
00000078 l    O .rodata        00000004 NiFpga_Status_SoftwareFault
0000007c l    O .rodata        00000004 NiFpga_Status_InvalidParameter
00000080 l    O .rodata        00000004 NiFpga_Status_ResourceNotFound
00000084 l    O .rodata        00000004 NiFpga_Status_ResourceNotInitialized
00000088 l    O .rodata        00000004 NiFpga_Status_FpgaAlreadyRunning
0000008c l    O .rodata        00000004 NiFpga_Status_DeviceTypeMismatch
00000090 l    O .rodata        00000004 NiFpga_Status_CommunicationTimeout
00000094 l    O .rodata        00000004 NiFpga_Status_IrqTimeout
00000098 l    O .rodata        00000004 NiFpga_Status_CorruptBitfile
0000009c l    O .rodata        00000004 NiFpga_Status_BadDepth
000000a0 l    O .rodata        00000004 NiFpga_Status_BadReadWriteCount
000000a4 l    O .rodata        00000004 NiFpga_Status_ClockLostLock
000000a8 l    O .rodata        00000004 NiFpga_Status_FpgaBusy
000000ac l    O .rodata        00000004 NiFpga_Status_FpgaBusyFpgaInterfaceCApi
000000b0 l    O .rodata        00000004 NiFpga_Status_FpgaBusyScanInterface
000000b4 l    O .rodata        00000004 NiFpga_Status_FpgaBusyFpgaInterface
000000b8 l    O .rodata        00000004 NiFpga_Status_FpgaBusyInteractive
000000bc l    O .rodata        00000004 NiFpga_Status_FpgaBusyEmulation
000000c0 l    O .rodata        00000004 NiFpga_Status_InternalError
000000c4 l    O .rodata        00000004 NiFpga_Status_AccessDenied
000000c8 l    O .rodata        00000004 NiFpga_Status_RpcConnectionError
000000cc l    O .rodata        00000004 NiFpga_Status_RpcSessionError
000000d0 l    O .rodata        00000004 NiFpga_Status_FifoElementsCurrentlyAcquired
000000d4 l    O .rodata        00000004 NiFpga_Status_BitfileReadError
000000d8 l    O .rodata        00000004 NiFpga_Status_SignatureMismatch
000000dc l    O .rodata        00000004 NiFpga_Status_InvalidResourceName
000000e0 l    O .rodata        00000004 NiFpga_Status_FeatureNotSupported
000000e4 l    O .rodata        00000004 NiFpga_Status_VersionMismatch
000000e8 l    O .rodata        00000004 NiFpga_Status_InvalidSession
000000ec l    O .rodata        00000004 NiFpga_Status_OutOfHandles
000000f0 l    O .rodata        00000004 NiFpga_InfiniteTimeout
00000000 l    d  .gnu.linkonce.r._ZTI11robot_class        00000000 .gnu.linkonce.r._ZTI11robot_class
000000f4 l    O .rodata        00000004 IMAQ_RGB_TRANSPARENT
000000f8 l    O .rodata        00000004 IMAQ_RGB_RED
000000fc l    O .rodata        00000004 IMAQ_RGB_BLUE
00000100 l    O .rodata        00000004 IMAQ_RGB_GREEN
00000104 l    O .rodata        00000004 IMAQ_RGB_YELLOW
00000108 l    O .rodata        00000004 IMAQ_RGB_WHITE
0000010c l    O .rodata        00000004 IMAQ_RGB_BLACK
00000000 l    d  .gnu.linkonce.r._ZTS11robot_class        00000000 .gnu.linkonce.r._ZTS11robot_class
00000110 l    O .rodata        00000004 _ZSt6_VBITS
00000114 l    O .rodata        00000004 _ZSt10_ISORT_MAX
00000000 l    d  .debug_frame        00000000 .debug_frame
00000000 l    d  .debug_pubnames        00000000 .debug_pubnames
00000000 l    d  .debug_aranges        00000000 .debug_aranges
00000000 l    d  .debug_str        00000000 .debug_str
00000000 l    d  .comment        00000000 .comment
00000000        *UND*        00000000 _Unwind_SjLj_Resume
00000000        *UND*        00000000 __gxx_personality_sj0
00000000        *UND*        00000000 _Unwind_SjLj_Register
00000000        *UND*        00000000 _Unwind_SjLj_Unregister
00000000 g    F .text        0000015c _ZN11robot_classC2Ev
00000000        *UND*        00000000 _ZN14IterativeRobotC2Ev
00000000  w    O .gnu.linkonce.r._ZTV11robot_class        0000003c _ZTV11robot_class
00000000        *UND*        00000000 _ZN9RobotBase11GetWatchdogEv
00000000        *UND*        00000000 _ZN8Watchdog10SetEnabledEb
00000000        *UND*        00000000 _ZN14IterativeRobotD2Ev
0000015c g    F .text        0000015c _ZN11robot_classC1Ev
000002b8 g    F .text        0000013c _ZN11robot_class9RobotInitEv
00000000        *UND*        00000000 left_front_motor
00000000        *UND*        00000000 drive
00000000        *UND*        00000000 _ZN10RobotDrive16SetInvertedMotorENS_9MotorTypeEb
00000000        *UND*        00000000 left_rear_motor
00000000        *UND*        00000000 right_front_motor
00000000        *UND*        00000000 right_rear_motor
00000000        *UND*        00000000 global_state
00000000        *UND*        00000000 _ZN13state_tracker9set_stateEm
00000000        *UND*        00000000 _Z11init_camerav
000003f4 g    F .text        00000020 _ZN11robot_class12DisabledInitEv
00000414 g    F .text        00000020 _ZN11robot_class14AutonomousInitEv
00000434 g    F .text        00000020 _ZN11robot_class10TeleopInitEv
00000454 g    F .text        00000020 _ZN11robot_class16DisabledPeriodicEv
00000474 g    F .text        00000044 _ZN11robot_class18AutonomousPeriodicEv
00000cb0 g    F .text        00000058 _ZN11robot_class14update_sensorsEv
000004b8 g    F .text        00000044 _ZN11robot_class14TeleopPeriodicEv
000004fc g    F .text        00000020 _ZN11robot_class18DisabledContinuousEv
0000051c g    F .text        00000020 _ZN11robot_class20AutonomousContinuousEv
0000053c g    F .text        00000774 _ZN11robot_class16TeleopContinuousEv
00000000        *UND*        00000000 _ZN13state_tracker9get_stateEv
00000000        *UND*        00000000 left_joystick
00000000        *UND*        00000000 _ZN9joysmooth12GetRawButtonEj
00000000        *UND*        00000000 _ZN10RobotDrive11ArcadeDriveER10GenericHIDb
00000000        *UND*        00000000 _ZN9joysmooth4GetYEN10GenericHID12JoystickHandE
00000000        *UND*        00000000 right_joystick
00000000        *UND*        00000000 _ZN10RobotDrive9TankDriveEff
00000000        *UND*        00000000 servo_shifter
00000000        *UND*        00000000 _ZN7shifter3setENS_4GEARE
00000000        *UND*        00000000 _ZN10RobotDrive16SetSafetyEnabledEb
00000000        *UND*        00000000 _ZN17vision_processing6updateEv
00000000        *UND*        00000000 _ZN17vision_processing11get_degreesEv
00000000        *UND*        00000000 _ZN17vision_processing12get_distanceEv
00000000  w    F .gnu.linkonce.t._ZNKSt6vectorIdSaIdEE4sizeEv        00000068 _ZNKSt6vectorIdSaIdEE4sizeEv
00000000  w    F .gnu.linkonce.t._ZNSt6vectorIdSaIdEEixEj        0000008c _ZNSt6vectorIdSaIdEEixEj
00000000        *UND*        00000000 printf
00000000  w    F .gnu.linkonce.t._ZNSt6vectorIdSaIdEED1Ev        00000044 _ZNSt6vectorIdSaIdEED1Ev
00000000        *UND*        00000000 gunner_joystick
00000000        *UND*        00000000 left_launcher_jag
00000000        *UND*        00000000 _ZN6Jaguar3SetEfh
00000000        *UND*        00000000 right_launcher_jag
00000000        *UND*        00000000 rollers
00000000        *UND*        00000000 _ZN8roller_t13set_directionENS_9directionE
00000000        *UND*        00000000 _Z4Waitd
00000000        *UND*        00000000 _Z8registryv
00000000        *UND*        00000000 _ZN15update_registry6updateEv
00000d08 g    F .text        0000012c _Z20FRC_userClassFactoryv
00000000        *UND*        00000000 _Znwj
00000000        *UND*        00000000 _ZdlPv
00000e34 g    F .text        0000004c FRC_UserProgram_StartupLibraryInit
00000000        *UND*        00000000 _ZN9RobotBase14startRobotTaskEPFizE
00000000  w    F .gnu.linkonce.t._ZNSt6vectorIdSaIdEE5_TidyEv        000000c0 _ZNSt6vectorIdSaIdEE5_TidyEv
00000000  w    F .gnu.linkonce.t._ZNSt6vectorIdSaIdEE5beginEv        00000058 _ZNSt6vectorIdSaIdEE5beginEv
00000000  w    F .gnu.linkonce.t._ZNKSt6vectorIdSaIdEE8iteratorplEi        00000068 _ZNKSt6vectorIdSaIdEE8iteratorplEi
00000000  w    F .gnu.linkonce.t._ZNKSt6vectorIdSaIdEE8iteratordeEv        0000004c _ZNKSt6vectorIdSaIdEE8iteratordeEv
00000000  w    F .gnu.linkonce.t._ZNSt6vectorIdSaIdEE8_DestroyEPdS2_        00000054 _ZNSt6vectorIdSaIdEE8_DestroyEPdS2_
00000000  w    F .gnu.linkonce.t._ZNSaIdE10deallocateEPdj        0000004c _ZNSaIdE10deallocateEPdj
00000000  w    F .gnu.linkonce.t._ZNSt6vectorIdSaIdEE8iteratorC1EPd        0000004c _ZNSt6vectorIdSaIdEE8iteratorC1EPd
00000000  w    F .gnu.linkonce.t._ZNSt6vectorIdSaIdEE8iteratorpLEi        00000048 _ZNSt6vectorIdSaIdEE8iteratorpLEi
00000000  w    F .gnu.linkonce.t._ZNKSt6vectorIdSaIdEE14const_iteratordeEv        0000002c _ZNKSt6vectorIdSaIdEE14const_iteratordeEv
00000000  w    F .gnu.linkonce.t._ZSt14_Destroy_rangeIdSaIdEEvPT_S2_RT0_        00000078 _ZSt14_Destroy_rangeIdSaIdEEvPT_S2_RT0_
00000000  w    F .gnu.linkonce.t._ZNSt6vectorIdSaIdEE14const_iteratorC2EPd        00000054 _ZNSt6vectorIdSaIdEE14const_iteratorC2EPd
00000000  w    F .gnu.linkonce.t._ZNSt6_RanitIdiPKdRS0_EC2Ev        00000020 _ZNSt6_RanitIdiPKdRS0_EC2Ev
00000000  w    F .gnu.linkonce.t._ZSt8_Ptr_catPdS_        0000002c _ZSt8_Ptr_catPdS_
00000000  w    F .gnu.linkonce.t._ZSt14_Destroy_rangeIdSaIdEEvPT_S2_RT0_St24_Scalar_ptr_iterator_tag        00000028 _ZSt14_Destroy_rangeIdSaIdEEvPT_S2_RT0_St24_Scalar_ptr_iterator_tag
00000000  w    O .gnu.linkonce.r._ZTI11robot_class        0000000c _ZTI11robot_class
00000000  w    F .gnu.linkonce.t._ZN11robot_classD1Ev        0000007c _ZN11robot_classD1Ev
00000000  w    F .gnu.linkonce.t._ZN11robot_classD0Ev        0000007c _ZN11robot_classD0Ev
00000000        *UND*        00000000 _ZN14IterativeRobot16StartCompetitionEv
00000000        *UND*        00000000 _ZTVN10__cxxabiv120__si_class_type_infoE
00000000  w    O .gnu.linkonce.r._ZTS11robot_class        0000000e _ZTS11robot_class
00000000        *UND*        00000000 _ZTI14IterativeRobot

Anyone know what GCC is doing with our code?

Full code for everything is available at www.github.com/rbmj/612-code

rbmj 15-02-2012 20:22

Re: Missing Symbols
 
This does not work through ucpp on linux or on windriver (which makes sense, but just confirms it's not a wine issue).

I don't know why there aren't any symbols...

rbmj 15-02-2012 21:05

Re: Missing Symbols
 
Nevermind everyone, I'm sorry.

One of the junior programmers put include guards in a .cpp file and I was being brain-damaged and didn't see it (I guess I'm so used to mentally skimming over them...).


All times are GMT -5. The time now is 17:38.

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