Forum Replies Created
-
AuthorPosts
-
support
KeymasterHi,
Looks like you are using an older preview build of VisualGDB 5.3.
Please update to the latest 5.3 Preview 7.
support
KeymasterHi,
VisualGDB is licensed per seat (a computer/user combination). Hence one license will allow using VisualGDB on one computer by one user. After the initial year the license will continue working, however you will no longer be eligible for technical support and you won’t be able to update to VisualGDB versions released after the year ran out. Alternatively you can always renew your license (currently the renewal price is 50% of the regular price).
support
KeymasterHi,
We have just retested it with the nRF52840 (PCA10056) and could not reproduce any issues. Do you get this error with all projects (including the basic “Blinking LED”) or only with some specific projects?
support
KeymasterGood to know it works.
With the free option, VS supports custom viewers for watches via the GetCustomViewerList() method. We can easily modify the VisualGDB engine to return an array of DEBUG_CUSTOM_VIEWER structures provided directly by your visualizer. You would then need to figure out how to connect this with the VS internals and let VS load the actual visualizer.
If you want us to figure this out instead and provide you with a simple WPF-based interface for custom viewers, we can do that for a small fee (please contact sales via the support form to get a quote).
support
KeymasterThanks, we’ll keep this in mind when designing our stack analyzer.
The custom real-time transport mechanism is not documented (and is currently only used in our internal tests), so we’ll provide an overview here. First of all, please use this build as it publishes all necessary interfaces properly: http://sysprogs.com/files/tmp/VisualGDB-5.3.7.1760.msi
Then you would need to create a new .Net library in C#, reference the VisualGDBExtensibility.dll assembly and add the following class there:
public class ExtensionFactory : IVisualGDBExtensionFactory { public IVisualGDBBuildExtension CreateBuildExtension(IVisualGDBProjectContext project) => null; public IVisualGDBDebugExtension CreateDebugExtension(IVisualGDBProjectContext project) => new Extension(); public IVisualGDBDesignExtension CreateDesignExtension(IVisualGDBProjectContext project) => null; class DataSource : ICustomRealTimeWatchDataSource { private SerialPortStream _Stream; public event ThreadStart ResetDetected; public event RealTimeWatchDataReceived DataReceived; public void RunFromWorkerThread() { _Stream = new SerialPortStream("COM16"); byte[] data = new byte[65536]; for (; ; ) { int done = _Stream.Read(data, 0, data.Length); DataReceived?.Invoke(data, 0, done); } } public void Stop() => _Stream?.Dispose(); } class Extension : IVisualGDBEmbeddedDebugExtension { public ICustomRealTimeWatchDataSource RealTimeWatchDataSource { get; } = new DataSource(); public void AdjustToolCommandLine(DebugTool debugTool, ref string executable, ref string arguments, ref string workingDirectory) { } public void Dispose() { } public void OnGDBSessionStarting(IGDBSession gdbSession, ref bool bypassNormalStartupCommands) { } } }
Replace the RunFromWorkerThread() method with what makes sense for your implementation. Then add a <ProjectExtension> element to the .vgdbsettings file (under VisualGDBProjectSettings2) pointing to your plugin DLL.
In your application replace the implementation for the SysprogsProfiler_WriteData() function with your own one that will channel the pdcRealTimeAnalysisStream stream over your custom channel. Note that SysprogsProfiler_WriteData() is called with the interrupts disabled, so it should not rely on any interrupt handlers.
As long as the data passed to DataReceived exactly matches what was sent by the profiler framework via calls to SysprogsProfiler_WriteData(), VisualGDB will parse it correctly and the real-time watch GUI (including any custom events used to report your variables) will work.
support
KeymasterThe hang could be caused by an issue we recently discovered and fixed. Please try this build: http://sysprogs.com/files/tmp/VisualGDB-5.3.7.1759.msi
If the problem persists, please try checking the gdb log for the last commands issued by VisualGDB (you can enable diagnostic gdb logging via the Advanced GDB Settings page of VisualGDB Project Properties).
support
KeymasterHi,
Static libraries are just archives containing multiple .o files. As their creation does not involve linking (i.e. combining multiple .o files into a single image), no .map file can be generated for them.
support
KeymasterCould you confirm that running the same gdb commands manually (in a gdb instance started from command line) works? If yes, please share the full gdb log (can be enabled on the Advanced GDB Settings page of VisualGDB Project Properties) and we will investigate.
August 29, 2017 at 04:36 in reply to: Problem with Segger_RTT_printf functionI cannot get the SEGGER_RTT_printf() func #12205support
KeymasterHi,
Good to know it works. If you encounter further issues, feel free to start another topic.
support
KeymasterHi,
VisualGDB takes the list of supported devices from the MCU.CSV file in the Segger Software directory.
It looks like the nRF52840_xxAA device is supported, but not listed there. We will contact Segger support for clarification. As a workaround, please try adding an entry to the CSV file manually so that VisualGDB can recognize it.
support
KeymasterHi,
This could be caused by a bug somewhere in the code (e.g. uninitialized variable or missing ‘volatile’ keyword) that only takes effect when the code is optimized. We would advise locating the code responsible for setting the hardware registers and stepping through it in disassembly mode to understand what is going on.
support
KeymasterHi,
Looks like you are using an older v5.3 Preview build. Please try updating to the latest Preview 7.
support
KeymasterOK, we have fixed the expression type reporting in this build: http://sysprogs.com/files/tmp/VisualGDB-5.3.7.1748.msi
It should automatically filter out the base class definition in all cases and only display the actual class name.
August 27, 2017 at 04:40 in reply to: Problem with Segger_RTT_printf functionI cannot get the SEGGER_RTT_printf() func #12188support
KeymasterHi,
Please try adding the files from <Nordic SDK>\external\segger_rtt to your project.
Please note that we normally recommend using the VisualGDB Fast Semihosting mechanism instead (can be enabled via the Embedded Frameworks page of VisualGDB Project Properties). It is fully integrated with VisualGDB, supports multiple text colors and its output will be automatically shown in a separate window inside the Visual Studio window while the debugging is active.
support
KeymasterHi,
Thanks, we have fixed this in the following build: http://sysprogs.com/files/tmp/VisualGDB-5.3.7.1748.msi
-
AuthorPosts