Forum Replies Created
-
AuthorPosts
-
support
KeymasterHi,
We have just received the ESP32-C3 hardware and finished running tests on it. Indeed, using the external JTAG pins doesnt’ seem to work at all. However, the built-in USB-to-JTAG engine works just fine. We have published a tutorial showing how to use it here and also contacted Espressif for clarifications on the external JTAG support.
Update: we just received clarifications from Espressif on this issue. Debugging ESP32-C3 with an external JTAG probe requires additional setups steps described in this thread. However, using the built-in JTAG engine should be much easier.
-
This reply was modified 4 years ago by
support. Reason: reflected update from Espressif
support
KeymasterHi,
We usually remove the toolchains that have been superseded by bugfix releases (i.e. use the same compiler version) to save space. If the bugfix release is less stable than the original one, it’s likely due to the ESP-IDF version included in it. If this is the case, please try getting the git commit ID of the version that works for you by running the following command in the esp-idf directory of the working toolchain:
git log -n 1
Below is the sample output from it:
commit 1e3638390964c86b0e7ef3af02973b30c58ea1be Merge: 32c63fca9 1e8fca74f Author: Jiang Jiang Jian <jack@espressif.com> Date: Fri Jun 11 05:19:05 2021 +0000 Merge branch 'bugfix/handling_public_action_frame_v4.2' into 'release/v4.2' esp_wifi: Fix SoftAP crash by handling public action frames. See merge request espressif/esp-idf!13927
You can then checkout the same commit into the other toolchain, e.g.:
git checkout 1e3638390964c86b0e7ef3af02973b30c58ea1be
support
KeymasterHi,
No problem and thanks for letting us know. We have fixed the issue in this build: VisualGDB-5.6.5.4230.msi
July 14, 2021 at 19:31 in reply to: Embedded Linux. Can I use unit tests for the telnet target #30958support
KeymasterNo problem and thanks for your pull request with adding proper timeout handling to the telnet target.
We have added a new ITargetWithRawPipes interface to VisualGDBExtensibility.dll that should be implemented by the telnet target:
public interface ITargetWithRawPipes : ICustomRemoteTarget { Stream OpenPipeForReading(string path); }
VisualGDB will call the OpenPipeForReading() method, supplying it the full path of the pipe on the Linux machine (e.g. /tmp/pipe). The target should open it and return a readable stream that VisualGDB will read from a background thread.
Note that the pipe output can contain arbitrary bytes and not just printable characters, so the target may need special handling to escape/unescape them properly. We highly advise testing it by reading a test file containing all possible 256 byte values.
support
KeymasterThanks for emailing us the detailed repro instructions. We have double-checked everything and confirmed that NRFConnect SDK 1.6.0 was indeed not working out-of-the-box. It turned out, we could not reproduced it initially due to an old value cached in our test environment.
The problem was caused by this commit, removing the deprecated gccarmemb toolchain variant that VisualGDB used due to backward compatibility.
We have updated VisualGDB to use the correct gnuarmemb name: VisualGDB-5.6.5.4230.msi
If you need to build older NRFConnect versions using the old gccarmemb name, you can edit the NRFConnect/GCCToolchainName tag in the %VISUALGDB_DIR%\Rules\RegularExpressions.xml file and simply restart Visual Studio.
support
KeymasterHi,
No problem. We have added panning support for the following build: VisualGDB-5.6.5.4229.msi. You can now hold Shift and drag it with the mouse to move the viewport around.
We could not reproduce the problem with disappearing graphs, although we have found a glitch that could have been causing it. If the problem persists in the new build, please make sure you can reproduce it from scratch and share the repro steps we could follow on our side, so that we could reproduce and fix it.
support
KeymasterThanks for sharing this. VisualGDB 5.6 Beta 4 should set HWREGISTER_LIST_FILE automatically. If you are using an older Beta, it might indeed fail to do so under some circumstances.
support
KeymasterHi,
Thanks very much for sharing this!
support
KeymasterHi,
VisualGDB can display many different windows, depending on what you are doing. You can find detailed description of most of them in our documentation, tutorials and the list of settings.
If VisualGDB is not working as expected, please provide a complete description how to reproduce the issue from scratch per our problem reporting guidelines and we will try to point you to the relevant setting. Please make sure you include the relevant screenshots, as they often contain important information required to pinpoint the issue.
support
KeymasterThe build with the new Live Watch improvements is ready: VisualGDB-5.6.5.4228.msi. Feel free to try it out and let us know your feedback.
support
KeymasterHi,
In our quick experiments, the breakpoints didn’t work in QSPI. This could be specific to a particular chip we used and could work differently on your one. You can try manually using the hbreak command in gdb to set a hardware breakpoint at a specific function in QSPI. If it doesn’t work, please consider checking it with ST – it might be completely unsupported, or might require some extra setup (e.g. disabling cache).
support
KeymasterThanks, this indeed looks like a debug symbol problem. Please see the following tutorial for detailed instructions troubleshooting it: https://visualgdb.com/tutorials/linux/symbols/
support
KeymasterHi,
Programming external memories with OpenOCD indeed requires building and using a special FLASH programming plugin. You can find more information in this tutorial.
support
KeymasterA custom source path mapping should take care of that. If it doesn’t work, please attach a screenshot of your path mapping settings, the full path of the file on Windows where you are trying to set a breakpoint, and a gdb log showing the command that VisualGDB used to set the breakpoint.
support
KeymasterThe -mfloat-abi setting should make it to both compiler and linker settings. The easiest way to ensure it would be to use the Configuration Properties -> ARM Settings -> Floating-point ABI setting.
The “frame not in module” error would typically mean that the CPU stopped outside any code that has symbols. You can double-check it by hardcoding a breakpoint (e.g. asm(“bkpt 255”) followed by asm(“nop”) in main()). Once it hits, try checking the disassembly view. If it displays the “bkpt 255” and “nop” instructions but doesn’t map them to the main source file, there is a problem with symbols. If the code is stopped on a completely different instruction, the problem is not related to the debugger.
-
This reply was modified 4 years ago by
-
AuthorPosts