Comments (12)
I believe that the plugins will only be able to exercise features that GDB allows to be used in the first place.
That's correct.
Only if you can use a feature in a terminal we should consider changes to the debug plug-ins.
from eclipse-plugins.
support live watch ... whether we can add this feature?
Well, this is by all means not a quick patch but a complex project, and I don't even know which JTAG probes would support it.
... maybe when we have resource ...
If someone decides to dedicate resources to implement it, sure, we can consider it.
from eclipse-plugins.
and we found current debug don't support live watch on register and expression, and riscv support access memory via system bus
Isn't it a prerequisite here that something like OpenOCD supports these features before the plugins can leverage/orchestrate them? Does it support them already? If not then adding support there would be a better place to start?
Edit: I guess that OpenOCD does support system bus access:
I can't see if access to registers - even using SBA - is possible while the target is still running. The debug spec suggests that it's only memory that can be accessed in this way:
I think that a first step is to clarifiy:
- The capabilities provided by the RISC-V debug spec
- The set of such capabilities supported (or not) by the current OpenOCD implementation
before considering what needs to be done to the plugins to provide support for the capabilities originally mentioned.
from eclipse-plugins.
Well, this is by all means not a quick patch but a complex project, and I don't even know which JTAG probes would support it.
Hi @ilg-ul , this is a feature of riscv debug spec, as I know openocd1, jlink 2 support it.
Isn't it a prerequisite here that something like OpenOCD supports these features before the plugins can leverage/orchestrate them? Does it support them already? If not then adding support there would be a better place to start?
Hi @TommyMurphyTM1234 , openocd support it via config in openocd cfg file like riscv set_mem_access sysbus
, but when we debug program in eclipse, and click run it, then you will not be able to view the expression value and memory content, other ide allow periodly monitor these values by a configured time such as 0.5s, but I didn't know how we can achive it in current plugin.
--
from eclipse-plugins.
Hi @ilg-ul , this is a feature of riscv debug spec, as I know openocd1, jlink 2 support it.
Can you clarify where access to registers is provided by the current OpenOCD imlementation please?
Hi @TommyMurphyTM1234 , openocd support it via config in openocd cfg file like
riscv set_mem_access sysbus
, but when we debug program in eclipse, and click run it, then you will not be able to view the expression value and memory content, other ide allow periodly monitor these values by a configured time such as 0.5s, but I didn't know how we can achive it in current plugin.
Does GDB via the command line console in Eclipse - or eben GDB standalone outside of Eclipse altogether - allow you to exercise these features?
That would probably be another prerequisite before the plugins can do anything.
from eclipse-plugins.
Can you clarify where access to registers is provided by the current OpenOCD imlementation please?
This feature seems not available in openocd, hardware may not support it.
from eclipse-plugins.
Does GDB via the command line console in Eclipse - or eben GDB standalone outside of Eclipse altogether - allow you to exercise these features?
No, I tried send gdb command in eclipse debugger console when target is running, not response is back.
from eclipse-plugins.
Does GDB via the command line console in Eclipse - or eben GDB standalone outside of Eclipse altogether - allow you to exercise these features?
No, I tried send gdb command in eclipse debugger console when target is running, not response is back.
@ilg-ul can correct me if I'm wrong but I believe that the plugins will only be able to exercise features that GDB allows to be used in the first place.
Sounds to me like this is potentially a mini project that needs to consider some or all of the following - and maybe others - and not just the plugins:
- RISC-V debug spec and debug capabilities - in particular what target resources are accessible via SBA while the target is free running
- OpenOCD (and other GDB servers) support for these capabilities
- GDB (and LLDB?) support for same
- What capabilities other commercial/non open-source tools provide
- Eclipse plugin support for these capabilities
from eclipse-plugins.
I collect some live watch features supported in other IDE for riscv:
see https://wwwfiles.iar.com/riscv/EWRISCV_DebuggingGuide.pdf
from eclipse-plugins.
Just that, as far as I know, IAR does not use GDB. Neither SEGGER.
from eclipse-plugins.
Just that, as far as I know, IAR does not use GDB. Neither SEGGER.
I agree. While such info about other tools may be interesting and informative, the key issue here is to first determine what, if any, support GDB has for the capabilities in question. If it doesn't have any then support would need to be added to GDB before the plugins can be modified to leverage those capabilities.
In this context, GDB features such as background execution and non-stop mode may be relevant:
- https://sourceware.org/gdb/onlinedocs/gdb/Background-Execution.html#Background-Execution
- https://sourceware.org/gdb/onlinedocs/gdb/Non_002dStop-Mode.html
However, this:
Currently GDB only really executes asynchronously with remote targets and this interaction is mimicked in other cases.
makes me wonder how much can actually be done by GDB while the target is running and not in background debug/debug halt state?
from eclipse-plugins.
Actually, this might be of relevance:
If VisualGDB can leverage GDB and OpenOCD to provide this feature then perhaps the plugins can too?
from eclipse-plugins.
Related Issues (20)
- Remove references to Navigator view to support 2023-06 HOT 21
- The disassembly view dosen't show opcode HOT 17
- CMSIS Packs - Read error dialog Abort button has the same effect as Ignore HOT 1
- CMSIS Packs - nomenclature is inconsistent and a little confusing HOT 6
- Support enhanced GNU Tool Factory capabilities introduced in CDT 11.2.0 HOT 5
- Feature request: add option to connect to a different OpenOCD port HOT 40
- openocd plugin has dependency on managedPlugin which is not given in the manifest file HOT 13
- Global RISC-V Toolchains name does not change with dropdown box HOT 54
- Review the logic for setting the PATH with preferXpacksBin HOT 7
- GDB fails when workspace path has extended ASCII characters HOT 8
- 'xpm' is not recognized as an internal or external command HOT 1
- Is it possible to set the timeout when gdb server (such as openocd) starts? HOT 1
- Install CMSIS Pack from local .pack file? HOT 4
- How to pass -Wl,--start-group -lc_nano -lgcc -Wl,--end-group HOT 1
- Feature request: Add a checkbox to enable group linked library HOT 25
- embed-CDT cannot start openocd normally HOT 2
- make: unknown option -- jobserver-auth=gmake_semaphore_172 when using post-build steps HOT 16
- "Interrupt failed" occurred when using GDB OpenOCD Debugging HOT 5
- Error during update: No repository found at http://gnu-mcu-eclipse.netlify.com/v4-neon-updates. HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from eclipse-plugins.