Developer forums (C::B DEVELOPMENT STRICTLY!) > Development

Problems discovered in branches/wxpropgrid_debugger SVN7712

<< < (4/5) > >>

oBFusCATed:

--- Quote from: mmccarty12 on February 17, 2012, 05:05:07 pm ---After upgrading to CB7713, gdb-7.1:
I was no longer able to insert break points while the program was running.  The Debug window would display the message:

--- Quote ---Code::Blocks is trying to interrupt process with pid: 21664; child pid: 0 gdb pid: 21664
--- End quote ---

--- End quote ---
And here is the real reason for your problem. As I've said the warning is harmless.
The problem is that child pid detection has failed and your gdb doesn't interrupt the debuggee, when it receives SIGINT signal.

And I'm repeating myself!

Can you try to use the native gcc (4.1.2)?

p.s. I'm running gdb-7.4 and there are no problems with it.

mmccarty12:

--- Quote ---Can you try to use the native gcc (4.1.2)?
--- End quote ---
I am now really confused.  I am talking about my problems with the gdb-7.x debugger.  Why are you asking me to use gcc-4.1.2?
What does the compiler version have to do with the debugger version?

Also, the problems I encountered went away when I downgraded back to gdb-6.8. I am not the only person who has encountered the console window connection problem.

--- Code: ---https://www.google.com/#sclient=psy-ab&hl=en&source=hp&q=warning:+GDB%3A+Failed+to+set+controlling+terminal%3A+Operation+not+permitted&pbx=1&oq=warning:+GDB%3A+Failed+to+set+controlling+terminal%3A+Operation+not+permitted&aq=f&aqi=g2g-v1g-j1&aql=&gs_sm=12&gs_upl=495l495l0l2912l1l1l0l0l0l0l118l118l0.1l1l0&bav=on.2,or.r_gc.r_pw.,cf.osb&fp=ae73f10212a66505&biw=1218&bih=829
--- End code ---

oBFusCATed:
OK, I quit :)

Edit: To prove that I'm right please paste the line

--- Code: ---Code::Blocks is trying to interrupt process with pid: 21664; child pid: 0 gdb pid: 21664

--- End code ---
When using gdb 6.8, you'll see that the 0 in the middle is not zero.

mmccarty12:
Obfuscated,

I appreciate you taking the time to try to help.  I am not trying to be an ass, nor am I stupid.  From my point of view, what you are telling me is not making any sense.  I responded as I did above because I believed you misunderstood my situation.  Just saying "Do this." without saying why does not make any sense and is not normally like you.  I have dealt with you here in the past and in #codeblocks in chat.  Normally you give an explanation as to why something is happening, and why your suggestion can/will work.  Here, it seems that you have not made yourself clear, from my perspective, so I ask you to explain.  


--- Quote ---Code::Blocks is trying to interrupt process with pid: 21664; child pid: 0 gdb pid: 21664
--- End quote ---
has no meaning, except that it seems to be causing me to not be able to do what I was able to do before the upgrade.  


--- Quote ---The problem is that child pid detection has failed and your gdb doesn't interrupt the debuggee, when it receives SIGINT signal.

--- End quote ---
Why is child pid detection failing with gdb-7.x and not gdb-6.8?
Why will changing the compiler fix everything?

oBFusCATed:
About the compiler: Because you're using some self compiled compiler or compiler compiled by someone else. And I wanted to remove one uncertainty.

About the message:
It has great meaning if you know how to read it :)
It is a debug message, telling you/me what C::B is doing. In this case it is telling to which process C::B is sending SIGINT. SIGINT is the same as Ctrl+C in terminal.
And in order to insert a new breakpoint, C::B has to stop the execution of the debuggee and then it can insert breakpoints then it will resume it.
Unfortunately this is not very reliable, because there are many different ways to do it, depending on the version of gdb and os.

Newer gdb's are supposed to interrupt the process, when they receive the SIGINT, older ones work only when the debuggee receives the SIGINT signal.
Unfortunately for some programs newer gdbs don't print the pid information during startup and we don't know the debuggee's PID, thus C::B falls back to sending signal directly to GDB.

And for some unknown reason, you newer gdb's fail to interrupt the debuggee, when they receive the SIGINT.
I guess you can try to ask the gdb devs in #gdb.

Do you have SELinux enabled? If you have, can you try without it?

p.s. please post the line from gdb-6.8!

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version