Forum Replies Created
-
AuthorPosts
-
support
KeymasterNo worries, the new OpenOCD package should automatically detect and handle both Picoprobe v1 and v2.
January 11, 2023 at 20:08 in reply to: Command line options are lost when resolving project load issues #33672support
KeymasterHi,
We can gladly investigate and fix it for you, however it looks like your support period has expired a while ago. We would kindly ask you to renew your key here and try out the latest version. If the problem persists, please let us know, and we should be able to fix it within 2-3 business days.
support
KeymasterHi,
Thanks, we have rechecked everything on our side. It looks like you are using the Picoprobe v2 firmware, that uses the CMSIS-DAP protocol. It requires selecting CMSIS-DAP instead of Picoprobe in OpenOCD settings.
We have released an updated OpenOCD package that will detect it automatically. Please feel free to install it via VisualGDB Package Manager, and your picoprobe will appear in the USB Devices list as expected.
support
KeymasterHi,
Thanks for sharing the screenshots. The adapter speed command should not be related to the “could not open device” error, however another setting is. According to your screenshot, you have selected the Debug Methods mode instead of USB Devices mode in the “Debug Using” field. This means that VisualGDB would expect you to install the probe drivers yourself.
If you switch back to the USB Devices mode, VisualGDB will let you pick a specific probe and will suggest installing the correct USB driver for it.
If it works now, you have likely installed the driver as a part of your troubleshooting steps, so both the regular OpenOCD and VisualGDB’s OpenOCD should work.
support
KeymasterHi,
It looks like the drivers for the picoprobe are configured incorrectly. If you could post a screenshot of the Debug Settings page of VisualGDB Project Properties, and another one of the Help->About VisualGDB window, we will try to suggest a few things.
support
KeymasterHi,
This looks like the project you are trying to debug is referencing a non-existent debug method. Please try opening VisualGDB Project Properties and double-check the debug settings there. If VisualGDB suggests installing missing packages (e.g. OpenOCD), please proceed with installing them.
P.S. VisualGDB was supposed to show a more informative error message in this case, but due to a bug it reverted to a rather generic one. We have fixed it on our side and will include the fix in the next maintenance release.
January 10, 2023 at 09:03 in reply to: VisualGDB 5.6 Clean And Source line Build Fail connection #33654support
KeymasterNo problem.
If the clean didn’t work, the project might have been using custom clean rules, expecting the object files to be in that location. Either way, disabling the Preserve Subdirectories for Object files setting would fully restore the old behavior.
The easiest way to get the paths working would be to add a mapping to VisualGDB Project Properties -> Path Mappings. We would advise proceeding like this:
- Start with a specific source file that is not working. Take a note of its path on Windows (e.g. c:\projects\shared\test.cpp) and on Linux (e.g. /home/test/shared/test.cpp).
- Add a mapping to the Path Mappings page covering just the file directory (e.g. c:\projects\shared => /home/test/shared).
- If you have multiple project files, make sure you edited the correct one. To avoid confusion, we would advise temporarily unloading other projects from the solution.
- Confirm that the mapping fully fixed the problem for this file.
- Once the problem is fixed, try changing the mapping to be as generic as possible (e.g. c:\projects => /home/test) and adding it to other projects.
There might be an easier way to get it working (e.g. using the Synchronized Directories page). If you could give us a brief description of your directory structure (i.e. why are some files located outside the project regular folders, and how do you usually synchronize them between Windows and Linux), we can try to suggest a more universal way to handle it.
support
KeymasterNo problem, please try attaching a debugger to the devenv.exe process and capturing a stack trace of the crash as shown here: https://visualgdb.com/support/callstack
January 9, 2023 at 10:56 in reply to: Cganging esp-adf version from within Visual Studio Project #33649support
KeymasterHi,
Sure, you can change it on the first page of VisualGDB project Properties, next to the toolchain selector.
January 9, 2023 at 10:52 in reply to: VisualGDB 5.6 Clean And Source line Build Fail connection #33648support
KeymasterHi,
No problem, we can help you get it working. The issues you are describing are likely caused by 2 changes from VisualGDB 5.4 to 5.6:
- Instead of placing all object files into 1 directory, VisualGDB 5.6 tries to place them into respective subdirectories. This allows building projects that have multiple files with the same name (e.g. subdir1\source.cpp => build\<…>\subdir1\source.obj vs. subdir2\source.cpp => build\<…>\subdir2\source.obj). If you build the old project with VisualGDB 5.4, all object files will be placed directly in build\<…>. If you then open it with VisualGDB 5.6, it will indeed expect the object files to be in subdirectories and won’t remove them from the old location.
There are 2 workarounds to this issue:- You can set the VS Project Properties -> General -> Preserve Subdirectories for Object Files to False to restore the old logic for placing object files. The project will work the same way as it did for VisualGDB 5.4, although having multiple sources with the same name won’t be possible.
- You can manually clean the object directories (remotely and locally) when switching from v5.4 to v5.6. This is only needed once – after you build the project with VisualGDB 5.6, it will be able to locate and clean the object files just fine.
- When dealing with the source files outside the project directory (not covered by any path mapping rules), VisualGDB 5.4 assumes that the relative path on the Linux side would be the same as on the Windows side (e.g. if a project located c:\projects\app is mapped to /home/test/app references ../shared/tool.cpp, VisualGDB would map it to /home/shared/tool.cpp). This caused weird errors for users that had different path layouts on Windows and Linux sides, and if some additional MSBuild rules translated the relative path to absolute, so we changed the path mapping logic as follows:
- First, VisualGDB would resolve the relative path to absolute one (e.g. c:\projects\shared\tool.cpp).
- Then, it would explicitly check the path mapping rules for a rule covering this path. The following locations are checked:
- Main source transfer command defined in VisualGDB Project Properties -> Project Settings.
- Additional path mappings from VisualGDB Project Properties -> Path Mappings.
- Additional custom source directories (VisualGDB Project Properties -> Synchronized Directories).
- Additional directory transfer actions in VisualGDB Project Properties -> Custom Build Steps).
If you are switching from VisualGDB 5.4, please try locating the sources files in question on the Windows machine, and then make sure their directory is covered by one of the settings listed above (e.g. you can add a path mapping from c:\projects to /home/test to cover anything inside c:\projects and any of its subdirectories).
Also if you have a complex project structure involving multiple applications and libraries, please consider switching to Advanced CMake. It allows having just one VisualGDB-level project (with one copy of source transfer settings, debug settings, etc.) with multiple applications, libraries and other custom targets, dramatically reducing the duplication of settings between applications and libraries.
support
KeymasterNo problem, and good to know it worked.
support
KeymasterHi,
VisualGDB manages the STM8 debugging via OpenOCD – an open-source tool for interfacing gdb to various hardware debuggers. The STM8-specific logic is contributed by ST and is mostly located in the stm8.c file.
If you would like to change how OpenOCD handles the reset sequence, we would advise first locating the related logic in the OpenOCD sources. If there is an existing option for changing it, you can try adding it to the relevant OpenOCD script, or directly to the command line (use VisualGDB Project Properties -> Debug Settings -> Advanced to edit the OpenOCD command line directly). If there is no such option, you would need to patch OpenOCD and build a modified version yourself. We would advise following this tutorial to build our OpenOCD fork – it uses CMake and is much easier to build on Windows, compared to the mainline version.
If you end up patching OpenOCD to fix the issue, feel free to either submit a pull request to us, or send a patch to the OpenOCD mailing list, so that your patch gets included in subsequent releases.
support
KeymasterHi,
No problem, we will try to help you. The symbolic link error could be caused by your antivirus interfering with the Visual Studio process, or by invalid symlinks on the target.
The easiest way to track it down would be to enable the SysprogsSync logging via Tools->Options->VisualGDB->General->SSH->Log SysprogsSync Transfers. Once you try resynchronizing the directory again, VisualGDB will create a SysprogsSync.log file on the Windows side containing the detailed information about the transfer. Please try focusing on a single symlink that could not be set, and checking:
- Whether its value on the Linux side makes sense
- Whether the target file/directory got copied to the Windows side
- Whether the log file mentions anything particular about that symlink
If it doesn’t help, please share your findings along with the relevant parts of the log file, and we will try to help you get it working.
support
KeymasterThanks for confirming your license information.
VisualGDB displays the XMing GUI whenever any program running on the Linux side tries to connect to the X11 server in order to display the X11 GUI via SSH. Normally, it happens when explicitly running graphical Linux applications. Sometimes, the command-line tools try connecting to the X11 server as a part of initializing some libraries, that also triggers this GUI.
If you would like to find the root cause, you can try enumerating the processes on the Linux machine while the VisualGDB XMing prompt is still active, attaching to the suspect ones and checking the call stack. It should explain which process is trying to connect to X11.
A more universal solution would be to completely disable X11 forwarding for that host via Tools->VisualGDB->SSH Host Manager->Host-wide settings->X11 forwarding = Disabled.
support
KeymasterWe always run some basic tests on our toolchain packages before releasing them. We specifically test that the basic projects for most common devices can be built and debugged, and that the toolchain can be installed from scratch on a clean machine with Visual Studio, our latest 3.x Python package and the latest VisualGDB.
If you are experiencing different behavior, it means that you have done something differently. We do not have a crystal ball to see what exactly is different in your setup – all we can do is review the information you provide, compare it to our reference setup, and point out the differences that could be relevant. That’s why we ask for complete detailed screenshots of the entire steps from the very beginning – the root cause is often hidden in fine details (like spaces in paths or overriding something). The post #33578 does not provide any of that information. All it shows is that you are trying to do multiple things at once, so all we can suggest is to do one thing at a time.
Regarding the Espressif releases, they do it fairly often – publish minor updates with the same version, fixing some old issues and sometimes introducing new ones. As we don’t charge our users for toolchain updates, the amount of resources we can put into them is fairly limited – we update them a couple of times per year with major releases from Espressif. We would only do an earlier update if there was solid evidence that it would fix a major problem affecting multiple users. If you absolutely have to use the latest releases from Espressif with VisualGDB, please do take your time to understand how the toolchains, ESP-IDF and Python environments work together, so you can move them between the environment created by the Espressif installer and our toolchain. It requires some effort and troubleshooting, but it’s more realistic than asking us to rebuild, retest and republish the toolchain every time Espressif does a minor update. If you are just looking for a simple way to use ESP-IDF 5.0 (without the latest minor fixes), please do try to install our toolchain in a clean environment. It has passed our tests and we other users have confirmed that it works for them.
P.S. We have published a summary of cleanup steps for troubleshooting ESP-IDF 5.0 installation here.
-
AuthorPosts