Before logging an issue, please update to the latest release of Visual Micro from the Downloads Page.

When Logging a Support Issue in the Forum, please ensure you have also:-

  • Enabled vMicro > Compiler > Show Build Properties
  • Re-Compile your program with these settings enabled
 
Save the new Output to a Text File and....
  • Click the Reply button and attach as .txt file OR
  • Click here to Email us with the file attached, and a link to your post
Support requests without the output above may be impossible to answer, so please help us to help you
 
Page Index Toggle Pages: 1 Send TopicPrint
Normal Topic undefined reference to vtable for fs::FileImpl (Read 2645 times)
mdmitry
Newbies
*
Offline


Posts: 3
Joined: Mar 10th, 2023
undefined reference to vtable for fs::FileImpl
Mar 11th, 2023 at 2:46pm
Print Post  
Hello, I'm a new Visual Micro user, trying to debug my ESP32 Arduino project.

I have two problems out of the box:

0. (SOLVED) When I tried to "Start Debugging" or "Attach to Process..." I got an error MessageBox Quote:
Unable to start debugging. The value of miDebuggerPath is invalid
. That was because I did not install "esp32" in Micro Explorer -> Board Manager.


1. When I try to "Start Debugging" or "Attach to Process..." I get an error MessageBox Quote:
Unable to start debugging. Check your debugger settings by opening project properties and navigating to 'Configuration Properties-->Debugging'
. The "Micro Debug" option does not appear in Output. In "Micro Build" there's only "MI Debugger Properties" JSON:
Quote:
// MI Debugger Properties
{
  "serverLaunchTimeout": 5000,
  "filterStdout": false,
  "filterStderr": true,
  "targetArchitecture": "arm",
  "stopAtEntry": false,
  "externalConsole": false,
  "MIMode": "gdb",
  "MIDebuggerServerAddress": "localhost:3333",
  "cwd": if_esp32wroverkit\\Release",
  "MIDebuggerPath": p32-elf-gcc\\esp-2021r2-patch5-8.4.0/bin\\xtensa-esp32-elf-gdb.exe",
  "MIDebuggerArgs": "-ex \"set remote hardware-watchpoint-limit 2\" -ex \"mon reset halt\" -ex \"flushregs\" -ex \"thb app_main\" -ex \"c\"",
  "debugServerPath": nocd.exe",
  "debugServerArgs": "-d2 -l ssif_esp32wroverkit\\Release/test_wrover_ILI9341.ino_DebugOpenOCD.log}\" -s cripts/\" -f cripts/interface/ftdi/esp32_devkitj_v1.cfg\" -c \"set ESP32_RTOS none\" -f cripts/board/esp32-wrover.cfg\" -c \"init\"",
  "setupCommands": [],
  "program": wroverkit/Release/test_wrover_ILI9341.ino.elf",
  "logging": {
    "moduleLoad": false,
    "trace": false,
    "engineLogging": false,
    "programOutput": false,
    "exceptions": false,
    "traceResponse": false
  },
  "showDisplayString": true
}

The Configuration Properties -> Debugging window has "Unsupported debug option" selected, if I select "Remote GDB Debugger" I see empty configuration (see screenshot). I haven't found information on visualmicro.com on how to set this up.


2. If my project uses SPIFFS, LittleFS or FFat, and I select "No Project + Libraries Optimization" or "No Optimization", the build fails with a message Quote:
ld.exe: FS\\vfs_api.cpp.o:(.literal._ZN2fs8FileImplD5Ev[_ZN2fs8FileImplD5Ev]+0x0): undefined reference to vtable for fs::FileImpl


Windows 10 22H2
Visual Studio 2022 v17.5.1 + Visual Micro 2023.220.2205, no settings altered
ESP32-WROVER-KIT_V4.1 with JTAG built in, WinUSB installed, 4 JTAG jumpers in place
VM settings: Arduino 2, ESP32 Wrover Kit (all versions), Debug: Hardware, ESP32 DEVKIT, No Optimization

Will provide any additional information needed. Thank you in advance.
« Last Edit: Mar 11th, 2023 at 5:45pm by mdmitry »  
Back to top
 
IP Logged
 
Simon@Visual Micro
Administrator
*****
Offline


Posts: 2370
Joined: Feb 13th, 2019
Re: undefined reference to vtable for fs::FileImpl
Reply #1 - Mar 11th, 2023 at 6:37pm
Print Post  
Thanks for the report.

The Debug option shown of "Unsupported debug option" is correct for vMicro as we configure all of this behind the scenes.  To revert this you may need to start with a new project.

In a new project, please enable the below options, and perform the Build and Upload, then run Debug > Attach to Process, and attach the complete output from the Output Window > Micro Build.
  • vMicro > Compiler > Show Build Properties
  • vMicro > Compiler > Verbose
  • vMicro > Uploader > Verbose
  
Back to top
 
IP Logged
 
mdmitry
Newbies
*
Offline


Posts: 3
Joined: Mar 10th, 2023
Re: undefined reference to vtable for fs::FileImpl
Reply #2 - Mar 11th, 2023 at 7:18pm
Print Post  
Thank you for your time.
  

Please Register or Login to the Forum to see File Attachments
Back to top
 
IP Logged
 
mdmitry
Newbies
*
Offline


Posts: 3
Joined: Mar 10th, 2023
Re: undefined reference to vtable for fs::FileImpl
Reply #3 - Mar 23rd, 2023 at 9:56pm
Print Post  
Quote:
Unable to start debugging. The value of miDebuggerPath is invalid

I've uninstalled Visual Studio and reinstalled everything again, and recreated projects, and this message never appeared again. Tried reinstalling VS with different options, couldn't reproduce anymore

Quote:
undefined reference to vtable for fs::FileImpl

This only happens with esp32 2.0.7 and 2.0.6, with 2.0.5 FS links successfully
  
Back to top
 
IP Logged
 
Simon@Visual Micro
Administrator
*****
Offline


Posts: 2370
Joined: Feb 13th, 2019
Re: undefined reference to vtable for fs::FileImpl
Reply #4 - Mar 24th, 2023 at 10:40am
Print Post  
Thanks for the report, it looks similar to this thread on the ESP32 Toolchain Repo:
https://github.com/espressif/arduino-esp32/issues/7585

If you change your Optimization (vMicro > Debugger > Optimization) to "No Project" instead of "None", it should compile succesfully.

If this is not the case please post the updated output with the logging settings enabled as before.
  
Back to top
 
IP Logged
 
Page Index Toggle Pages: 1
Send TopicPrint