Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Restart not updating code location in editor #55

Closed
microwavesafe opened this issue May 2, 2018 · 17 comments
Closed

Restart not updating code location in editor #55

microwavesafe opened this issue May 2, 2018 · 17 comments
Assignees
Labels

Comments

@microwavesafe
Copy link

When I click on restart (or pause then restart), the debugging session does not jump to the init functions. The Debug console outputs "Resetting target", but the code stays in the old location and the call stack window doesn't change.

If I then click the step over button, it jumps to the correct location, so I'm convinced the reset is actually taking place, it's just the editor / call stack that isn't updated.

@Marus
Copy link
Owner

Marus commented May 2, 2018

Thanks for the report - I had this problem before and I thought I was completely fixed, but perhaps it is still happening in some cases.

What is your OS and VS Code versions? Also, what GDB server are you using?

@Marus Marus self-assigned this May 2, 2018
@Marus Marus added the bug label May 2, 2018
@microwavesafe
Copy link
Author

OS Ubuntu Gnome 16.04, VS Code 1.22.2, Cortex Debug plugin, says 0.1.19 in the extensions left hand pane, but the changelog only goes to 0.1.18.

GDB server is JLinkGDBServer 6.22g (I did update to 6.32, but downgraded after I had some problems that in hindsight were probably related to Eclipse).

@Marus
Copy link
Owner

Marus commented May 2, 2018

Thanks for the details; will try to have a look soon.

@microwavesafe
Copy link
Author

Also the runToMain option works well after starting the debug session, but when pressing restart, then step, I am stepped into the init functions, not main.

@Marus
Copy link
Owner

Marus commented May 2, 2018

Yes, at the moment the runToMain functionality hasn't been implemented in the restart request. The reason for that is with many core/debugger combinations have a very limited number of breakpoints they can use (often as little as 2) - so when restarting I can't guarantee that I can actually set the temporary breakpoint. I need to add some functionality so that it can remove the breakpoints for the runToMain step and then re-create them after it breaks at main; until I have a chance to do that I can't implement the runToMain in a reliable fashion in the restart situation.

@nxyd
Copy link
Contributor

nxyd commented Jun 15, 2018

I found that appending a command 'target-download' can make it jump to the init function correctly when click on restart.
like this:
1529076730 1

@chetferry
Copy link

Can you provide more details about your restartCommands? any chance you would be willing to show which file it goes into? Thanks.

@nxyd
Copy link
Contributor

nxyd commented Jan 23, 2019

@Marus Can you test if it is working using my solution see above. It works fine on my side.

@Marus
Copy link
Owner

Marus commented Jan 23, 2019 via email

@nxyd
Copy link
Contributor

nxyd commented Jan 24, 2019

It is better if you can find the root cause. This is only a workaround for me to use.

@nxyd
Copy link
Contributor

nxyd commented Jun 20, 2019

@Marus Have a plan to fix this?

@haneefdm haneefdm reopened this Jun 20, 2019
@rk-exxec
Copy link

rk-exxec commented Mar 8, 2021

Is there a fix for this issue in the making?

@haneefdm
Copy link
Collaborator

haneefdm commented Mar 8, 2021

Btw, if you are using an RTOS, this is a common problem with OpenOCD and JLink especially if you have runToMain disabled. GDB never gets an updated stack

@rk-exxec
Copy link

rk-exxec commented Mar 8, 2021

Alright. Though I am not using a RTOS nor JLink. I have the Tiva Launchpad tm4c123gxl and connect with Stellaris ICDI JTAG/SWD interface.

@haneefdm
Copy link
Collaborator

haneefdm commented Mar 8, 2021

@rk-exxec Sorry to hear that. Does a single step fix the issue? We only report what GDB reports

@rk-exxec
Copy link

rk-exxec commented Mar 8, 2021

yes, when I step then the position is shown correctly again.

@haneefdm
Copy link
Collaborator

There is no workaround for this. Not with gdb and most of the gdb-servers. With OpenOCD, there is a workaround that is used in VSCode (changes in master, not yet released).

Note that this only happens if you enable breakAfterReset which is no longer the default, so you don't see this problem anymore.

The final workaround (for servers other than OpenOCD) is to do a single step to get the real stack trace. I have not found any gdb-trick to fix this. So, I am closing this issue

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

6 participants