Forum Replies Created
-
AuthorPosts
-
support
KeymasterThanks for clarifying this. It could be that the old toolchain you are using does not come with dummy syscall implementations that would not trigger the semihosting calls.
We could recommend 3 ways of solving it:
- Run the program without debugging, reproduce the crash, attach to it and examine the call stack. You will likely see a call to printf() somewhere that triggered the semihosting call. Simply comment it out, or make it conditional in order to remove it.
- Do not specify the –specs=nosys.specs at all and try building the project. Once it complains about missing _write() and other similar syscalls, provide your own implementations for them that will simply discard the data passed to them.
- Try using our Advanced Semihosting and Profiler framework and select the option to ignore semihosting calls when the debugger is not attached.
support
KeymasterThanks for confirming your license key. Specifying –specs=nosys.specs manually should normally work.
If it doesn’t, please let us know:
- What exactly you are trying to achieve? I.e. why simply not calling printf() is not an option?
- What is the expected/observed behavior when you use the settings on the screenshot (e.g. expect the project to build, got a specific error)?
This should help us understand what is going on.
support
KeymasterHi,
It looks like you are using an old toolchain that doesn’t provide fine-grain control over semihosting calls. Please try unchecking the “Provide default stubs for system calls” checkbox (bottom of the 1st screenshot) and then either manually provide dummy syscall implementations, or manually specify “–specs=nosys.specs” via VS Project Properties (not VisualGDB Project Properties) -> Linker -> Command Line.
support
KeymasterHi,
Sorry, unfortunately the recent versions of STM32CubeMX are somewhat buggy and often include incorrect paths in the generated GPDSC files.
VisualGDB works around the known instances of this, but it looks like you have discovered another one. If you could reproduce it on a freshly created STM32CubeMX project and share it with us (along with the generated GPDSC file), we should be able to add a workaround rule.
If the problem is specific to a project that cannot be shared, please consider cloning our STM32CubeMX importing plugin from Github and adding logic similar to the ApplyFreeRTOSFixes() method that works around known STM32CubeMX bugs.
September 27, 2019 at 16:32 in reply to: ESP8266 – Error on uploading Arduino sketch: upload.py Invalid parameters used #25944support
KeymasterStrange. Please double-check that the <VisualGDB>\Arduino\arduino-builder.exe file has a size of 12186624 bytes.
Please also try rebuilding the project and check that the call to gdbstub_do_break() from gdbstub_init() in gdbstub.c is not grayed out:
Attachments:
You must be logged in to view attached files.support
KeymasterHi,
Sorry ESP-IDF 4.1 is not a stable release yet and hence is not supported by VisualGDB.
That said, ESP-IDF 4.0 had a similar issue and we fixed it in the following build: VisualGDB-5.5.1.3274.msi. Please feel free to try it as it may resolve the v4.1 issues as well.
September 27, 2019 at 05:29 in reply to: ESP8266 – Error on uploading Arduino sketch: upload.py Invalid parameters used #25933support
KeymasterNo problem and thanks for the detailed description. It helped us pinpoint and fix the issue so that the GDBSTUB_BREAK_ON_INIT will now work as expected.
Sorry for the false alarm, from the description we had, the problem looked like a missing flag somewhere in the settings and it was not possible for us to verify it without a screenshot (the call to gdbstub_init() would be highlighted differently based on the effective configuration). It turned out, the flag was specified, but then got lost inside the Arduino build logic.
Please try this build, it will work out-of-the-box: VisualGDB-5.5.1.3274.msi
support
KeymasterHi,
For MSBuild-based projects you can set the C++ language standard via VS Project Properties (not VisualGDB Project Properties) -> C/C++ -> Advanced -> Language Standard for C++ files (that will set the CPPLanguageStandard value in the .vcxproj file). If you believe this causes an error, please identify whether it affects building or only IntelliSense and whether you are using Clang IntelliSense or the regular VC++ IntelliSense.
If the project cannot be built, your compiler may not support C++17. If the problem is specific to IntelliSense only, please try reproducing it on a clean project and let us know the exact repro steps (see the 3-step format here).
Regarding the CMake projects, please try using the new Advanced CMake Project Subsystem. It automatically keeps the IntelliSense settings synchronized with the actual build settings, eliminating the need for any manual setup. If you would like to use the old CMake project system (based on VC++ projects), you would need to manually add the “–std=” option to VisualGDB Project Properties -> IntelliSense -> Additional flags for C++ files.
September 26, 2019 at 18:42 in reply to: ESP8266 – Error on uploading Arduino sketch: upload.py Invalid parameters used #25930support
KeymasterNo problem, please share the screenshot of the Visual Studio window with the main sketch file open, the screenshot of the first page of VisualGDB Project Properties, the screenshots of SmarTTY window showing the output from the board at baud rates of 57600, 74880 and 115200 and we will help you understand what is going on and find the working settings.
September 26, 2019 at 17:24 in reply to: ESP8266 – Error on uploading Arduino sketch: upload.py Invalid parameters used #25928support
KeymasterPlease follow our gdb stub debugging tutorial. It provides a very detailed explanation of all necessary configuration steps: https://visualgdb.com/tutorials/arduino/esp8266/
September 26, 2019 at 17:06 in reply to: ESP8266 – Error on uploading Arduino sketch: upload.py Invalid parameters used #25926support
KeymasterVisualMicro might be using a different debug mechanism that patches the code at compile-time to handle breakpoints and variable output, that is less flexible than the fully fledged gdb-based debugging, but would not rely on the Espressif’s GDB stub.
Please check what debug method the other tool is using (e.g. gdb stub, JTAG or the compile-time breakpoints) and ensure you are using the same settings with VisualGDB.
Also please do actually try different baud rates (especially 57600, 74880, 115200). The $T05#b9 message might be displayed under a different baud rate than the welcome banner and hence would not be properly visible.
September 26, 2019 at 16:56 in reply to: ESP8266 – Error on uploading Arduino sketch: upload.py Invalid parameters used #25924support
KeymasterIf the $T05#b9 message is not shown despite trying different baud rates, the board you are using may not be supported by the gdb stub. Please contact Espressif for further details.
September 26, 2019 at 16:23 in reply to: CMSIS-DAP device showing up multiple times and debug fails #25922support
KeymasterHi,
Thanks for reaching out to us. Most likely, the debug probe internally exposes several USB interfaces (that technically count as separate USB devices) without reporting a unique serial number and that confuses the VisualGDB logic.
Please try locating the device in the Windows Device Manager (the debugger endpoint, not the virtual COM port and check its full hardware ID with VID, PID and MI strings). Then try editing the %LOCALAPPDATA%\VisualGDB\EmbeddedDebugPackages\com.sysprogs.arm.openocd\QuickSetup\interfaces.xml file to specify the UsbIdentity\Interface element that matches the MI value from the hardware ID.
Then please restart Visual Studio and see if the problem is resolved. If yes, please let us know the changes you made to interfaces.xml and we will update the version shipped with VisualGDB.
On a side note, using the CMSIS-DAP interface for debugging usually results in incredibly slow debugging performance (every single step can take about 5 seconds) due to the USB latency arising from the use of the USB HID class. If you have a feedback channel to the engineering team behind this Analog board, please consider suggesting that they update the firmware to expose an additional USB BULK interface and submit an OpenOCD patch to recognize it. It would require installing the WinUSB driver (as with many other debug probes), but would make debugging more than 10x faster.
September 26, 2019 at 16:14 in reply to: ESP8266 – Error on uploading Arduino sketch: upload.py Invalid parameters used #25921support
KeymasterMost likely, the gdb stub baud rate is configured incorrectly.
Please try opening the COM port with SmarTTY and resetting the board. The gdb stub should output the following text (indicating that it’s ready for gdb to attach):
$T05#b9
If you see anything different, please try using different baud rates to see if any of them works. Please also ensure you have followed all other steps from our ESP8266 Arduino tutorial.
support
KeymasterHi,
Please try creating an empty file at the path shown in the error message. Alternatively, please try using the following tool to uninstall VisualGDB: https://support.microsoft.com/en-us/help/17588/fix-problems-that-block-programs-from-being-installed-or-removed
-
AuthorPosts