|
|
|
![]() |
|
|||||||
|
||||||||
![]() |
| Thread Tools | Rate Thread | Display Modes |
|
#1
|
|||
|
|||
|
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 Full code for everything is available at www.github.com/rbmj/612-code |
|
#2
|
|||
|
|||
|
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... |
|
#3
|
|||
|
|||
|
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...). |
![]() |
| Thread Tools | |
| Display Modes | Rate This Thread |
|
|