Jump to content

14 posts in this topic

Recommended Posts

Posted (edited)

When you say it will crash my app, do you mean it will crash, or hang?

 

I'm having a really weird issue now.

 

Using GDB, got it running. What I'm watching is an 8 byte/64 bit integer. If I do this:

 

watch *(double *)0x12345678

 

It never actually catches it. Ever. I know the value is changing, I'm changing it in-app.

 

So then I ^C and leaving the original watchpoint in, I add:

 

watch (double *)0x12345678 (notice the lack of the initial *)

 

I then hit C to continue.

 

It immediately breaks telling me the value of watchpoint ONE (not the new one) changed.

 

If I hit continue again, the app freezes and becomes completely unresponsive. If I ^C and delete watchpoint 2, then continue, the app continues to work, and watchpoint 1 stops reporting. If I ^C and re-add the 2nd watchpoint, again, it will immediately break (if the value changed in the meantime) reporting the change (saying it was watchpoint 1 that caught it). Another continue brings us back to hanging.

 

Really weird.

 

Any clue? Or should I just go get a cheap macbook today?

Updated by infernusdoleo
Posted

Just noticed something that may explain the hang...

 

When I do an info watch, the 1st watchpoint is hardware. The second just says "watchpoint" - so that may explain the hang, assuming it's software.

 

But what that doesnt explain is why is the HW watchpoint ignored until I add a software watchpoint?

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
  • Create New...

Important Information

We would like to place cookies on your device to help make this website better. The website cannot give you the best user experience without cookies. You can accept or decline our cookies. You may also adjust your cookie settings. Privacy Policy - Guidelines