Hi,
IBreakpoints.PROP_FILE is path of the source file when it was compiled.
You have to know where you compile your code, it is not a job of the debugger.
Regards,
Eugene
From: tcf-dev-bounces@xxxxxxxxxxx <tcf-dev-bounces@xxxxxxxxxxx>
On Behalf Of Gidi Gal
Sent: Monday, January 13, 2020 2:22 PM
To: tcf-dev@xxxxxxxxxxx <tcf-dev@xxxxxxxxxxx>
Subject: Re: [tcf-dev] Setting break point programmatically
EXTERNAL EMAIL
I made some progress with my understanding of the problem. I was setting the path to the file in property IBreakpoints.PROP_FILE with the local path and not the path
on the target. Once I set the path to the file in the target, breakpoint was set successfully. While I understand how to do this on a Linux VM, my main focus is on a VxWorks target. The file which I want to set breakpoint is located in a static library which
is linked into a downloadable kernel module. When I launch my application, I specify the module file name.
Is there a view in TCF that can show me the path to this file in the target ?
I am trying to add a break point using TCF API. Here is the code I am using :
private void createAnimBreakpointUsingTCF(final String sourceHandle, int line) {
Map<String, Object> properties = new HashMap<String, Object>();
properties.put(IBreakpoints.PROP_FILE, sourceHandle);
properties.put(IBreakpoints.PROP_TYPE, "Auto");
properties.put(IBreakpoints.PROP_ID, UUID.randomUUID().toString());
properties.put(IBreakpoints.PROP_LINE, line);
properties.put(IBreakpoints.PROP_ENABLED, true);
//m_animBreakpoint stores IBreakpoints service which is received from IChannel. The method is called after testing that the channel is in state IChannel.STATE_OPEN
this.m_animBreakpoint = this.m_breakpoints.add(properties, new DoneCommand() {
public void doneCommand(IToken token, Exception error) {
System.out.println("test");
}
The breakpoint is not set correctly. When I look in its properties I see in the status page the report "Error: unresolved source line information".
When I add the break point manually, it is added successfully.
I tried to debug the manual addition of the break point, I don't see differences between the path to the path that I send in my code and the debugged path. I tried also this code, which is called
higher in the call stack, in the process of manually adding a break point:
private void createAnimBreakpointUsingCDI(final String sourceHandle, final int line) {
Display.getDefault().asyncExec(new Runnable() {
Map<String, Object> attributes = new HashMap<String, Object>();
ICLineBreakpoint lineBp = CDIDebugModel.createBlankLineBreakpoint();
CDIDebugModel.setLineBreakpointAttributes(attributes, sourceHandle, 0, line, true, 0, "" ); //$NON-NLS-1$
//The file in focus is not part of Eclipse project.
IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
CDIDebugModel.createBreakpointMarker(lineBp, root, attributes, true);
} catch (CoreException e) {
}
The break point is added with an error icon near it, tool tip is showing the error: failed to plant: Unresolved source line information.
I'll try to build a small test that reproduces this issue. If you have any idea how to solve it, I'll be grateful for your reply.
|