Author Topic: Problem with debugger  (Read 28473 times)

kramed

  • Guest
Re: Problem with debugger
« Reply #30 on: March 09, 2007, 02:29:03 am »
Im sorry I dont understand clearly. The two routine code above, pasted into codeblocks does not compile on its own therefore no way for me to get debugging output.

I am in #codeblocks on irc.freenode.net if that would make things easier.

Offline Pecan

  • Plugin developer
  • Lives here!
  • ****
  • Posts: 2812
Re: Problem with debugger
« Reply #31 on: March 09, 2007, 02:36:52 am »
Im sorry I dont understand clearly. The two routine code above, pasted into codeblocks does not compile on its own therefore no way for me to get debugging output.

I am in #codeblocks on irc.freenode.net if that would make things easier.

There are two routines at the bottom of debuggergdb.cpp just like the ones I pasted above named DebuggerGDB::RunNixConsole() and  DebuggerGDB::GetConsoleTty .

Please replace those routines with with the two I include above. Compile, quite CB, restart CB, and run the test program.

Paste the "Debugger(debug)" output here.
 

kramed

  • Guest
Re: Problem with debugger
« Reply #32 on: March 09, 2007, 02:53:48 am »
Code
Command-line: /usr/bin/gdb -nx -fullname  -quiet -args bin/Debug/cb_test
Working dir : /home/mark/cb_test/
> set prompt >>>>>>cb_gdb:
Executing: xterm -T 'Program Console' -e sleep
Using host libthread_db library "/lib/tls/libthread_db.so.1".
(gdb) >>>>>>cb_gdb:
> show version
GNU gdb 6.5
Copyright (C) 2006 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i486-slackware-linux".
>>>>>>cb_gdb:
> set confirm off
>>>>>>cb_gdb:
> set width 0
>>>>>>cb_gdb:
> set height 0
>>>>>>cb_gdb:
> set breakpoint pending on
>>>>>>cb_gdb:
> set print asm-demangle on
>>>>>>cb_gdb:
> set unwindonsignal on
>>>>>>cb_gdb:
> set disassembly-flavor att
>>>>>>cb_gdb:
> directory /home/mark/cb_test/
>>>>>>cb_gdb:
> delete breakpoints
>>>>>>cb_gdb:
> break "/home/mark/cb_test/pecans.cpp:25"
Breakpoint 1 at 0x8048b31: file /home/mark/cb_test/pecans.cpp, line 25.
>>>>>>cb_gdb:
> break "/home/mark/test/test.cpp:18"
No source file named /home/mark/test/test.cpp.
Breakpoint 2 ("/home/mark/test/test.cpp:18) pending.
>>>>>>cb_gdb:
Executing: ps x -o tty,pid,command
PS result: ?        27347 gaim
PS result: ?        27298 ps x -o tty,pid,command
PS result: ?        27282 /usr/bin/gdb -nx -fullname -quiet -args bin/Debug/cb_test
PS result: ?        24807 codeblocks
PS result: ?        15990 xchat
PS result: ?        13294 kio_file [kdeinit] file /tmp/ksocket-mark/klauncherMOSOQb.slave-socket /tmp/ksocket-mark/ark8vCrBa.slave-socket
PS result: ?        12097 kio_uiserver [kdeinit]               
PS result: pts/1     7619 -bash
PS result: ?         7606 konsole [kdeinit] --ls               
PS result: ?         3678 /usr/local/apps/firefox/firefox-bin
PS result: ?         3672 /bin/sh /usr/local/apps/firefox/run-mozilla.sh /usr/local/apps/firefox/firefox-bin
PS result: ?         3669 /bin/sh /usr/local/apps/firefox/firefox
PS result: ?         1694 konqueror [kdeinit] -session 108f363330000117332767600000070480034_1173327676_271749
PS result: ?         1645 superkaramba -session 108f363330000117290000300000036900011_1173329213_704079
PS result: ?         1642 superkaramba -session 108f363330000117285908400000027280029_1173329213_704201
PS result: ?         1638 kaccess [kdeinit]                     
PS result: ?         1630 kicker [kdeinit]                     
PS result: ?         1627 kdesktop [kdeinit]                   
PS result: ?         1623 kwin [kdeinit] -session 108f363330000117208531500000062480000_1173329221_738408
PS result: ?         1621 ksmserver [kdeinit]                   
PS result: tty1      1619 kwrapper ksmserver
PS result: ?         1606 kded [kdeinit] --new-startup         
PS result: ?         1604 klauncher [kdeinit] --new-startup     
PS result: ?         1600 dcopserver [kdeinit] --nosid         
PS result: ?         1597 kdeinit Running...                   
PS result: tty1      1569 /bin/sh /opt/kde/bin/startkde
PS result: tty1      1567 /bin/sh /usr/X11R6/lib/X11/xinit/xinitrc
PS result: tty1      1556 /usr/X11R6/bin/xinit /usr/X11R6/lib/X11/xinit/xinitrc -- -auth /home/mark/.serverauth.1540
PS result: tty1      1540 /bin/sh /usr/X11R6/bin/startx
PS result: tty1      1514 -bash
PS result: ?          987 java -Xms16m -Xmx128m -cp /usr/local/apps/azureus/Azureus2.jar:/usr/local/apps/azureus/swt.jar -Djava.library.path=/usr/local/apps/azureus -Dazureus.install.path=/usr/local/apps/azureus org.gudy.azureus2.ui.swt.Main /tmp/The.Departed.DVDRip.XviD-PUKKA.torrent
PS result: ?          961 /bin/bash /usr/local/apps/azureus/azureus /tmp/The.Departed.DVDRip.XviD-PUKKA.torrent
PS result: TT         PID COMMAND
Console Execution error:failed to find console tty.
> start
Breakpoint 3 at 0x8048a44: file /home/mark/cb_test/pecans.cpp, line 13.
main () at /home/mark/cb_test/pecans.cpp:13
/home/mark/cb_test/pecans.cpp:13:142:beg:0x8048a44
>>>>>>cb_gdb:
> info program
Using the running image of child process 27299.
Program stopped at 0x8048a44.
It stopped at a breakpoint that has since been deleted.
Type "info stack" or "info registers" for more information.
>>>>>>cb_gdb:
> cont
Please type in a String (max. 80 characters):


Offline Pecan

  • Plugin developer
  • Lives here!
  • ****
  • Posts: 2812
Re: Problem with debugger
« Reply #33 on: March 09, 2007, 02:59:44 am »
Wasn't compiled, or the code was not pasted correctly.

These statements did not execute:

Code
wxString sleepPid; sleepPid << 80000 + ::wxGetProcessId();
    DebugLog(wxString::Format(wxT("RunNixConsole.SleepPid_1 is[%s]"),sleepPid.c_str() ));
    sleepPid = wxString::Format(wxT("%d"),80000+ ::wxGetProcessId());
    DebugLog(wxString::Format(wxT("RunNixConsole.SleepPid_2 is[%s]"),sleepPid.c_str() ));

There's no way around them. Please check that they're there and you restarted CB when you ran the test.

« Last Edit: March 09, 2007, 03:02:15 am by Pecan »

Offline Pecan

  • Plugin developer
  • Lives here!
  • ****
  • Posts: 2812
Re: Problem with debugger
« Reply #34 on: March 09, 2007, 03:08:54 am »
I need to know what's wrong with the sleep argument.
The results of the new debugging statements are missing in your posted output.

Output will look like the following:
Code
Command-line: /usr/bin/gdb -nx -fullname  -quiet -args ./conio
Working dir : /home/pecan/proj/conio/
> set prompt >>>>>>cb_gdb:
RunNixConsole.SleepPid_1 is[82576]
RunNixConsole.SleepPid_2 is[82576]
Executing: xterm -font -*-*-*-*-*-*-20-*-*-*-*-*-*-*  -T 'Program Console' -e sleep 82576
Using host libthread_db library "/lib/libthread_db.so.1".
« Last Edit: March 09, 2007, 03:17:43 am by Pecan »

kramed

  • Guest
Re: Problem with debugger
« Reply #35 on: March 09, 2007, 03:29:01 am »
Code
Command-line: /usr/bin/gdb -nx -fullname  -quiet -args bin/Debug/cb_test
Working dir : /home/mark/cb_test/
> set prompt >>>>>>cb_gdb:
Executing: xterm -T 'Program Console' -e sleep
Executing: ps x -o tty,pid,command
Using host libthread_db library "/lib/tls/libthread_db.so.1".
(gdb) >>>>>>cb_gdb:
> show version
GNU gdb 6.5
Copyright (C) 2006 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i486-slackware-linux".
>>>>>>cb_gdb:
> set confirm off
>>>>>>cb_gdb:
> set width 0
>>>>>>cb_gdb:
> set height 0
>>>>>>cb_gdb:
> set breakpoint pending on
>>>>>>cb_gdb:
> set print asm-demangle on
>>>>>>cb_gdb:
> set unwindonsignal on
>>>>>>cb_gdb:
> set disassembly-flavor att
>>>>>>cb_gdb:
> directory /home/mark/cb_test/
>>>>>>cb_gdb:
> delete breakpoints
>>>>>>cb_gdb:
> break "/home/mark/cb_test/pecans.cpp:25"
Breakpoint 1 at 0x8048b31: file /home/mark/cb_test/pecans.cpp, line 25.
>>>>>>cb_gdb:
PS result: ?        27347 gaim
PS result: ?        15990 xchat
PS result: ?        15942 ps x -o tty,pid,command
PS result: ?        15930 [xterm] <defunct>
PS result: ?        15929 /usr/bin/gdb -nx -fullname -quiet -args bin/Debug/cb_test
PS result: ?        15749 codeblocks
PS result: ?        13294 kio_file [kdeinit] file /tmp/ksocket-mark/klauncherMOSOQb.slave-socket /tmp/ksocket-mark/ark8vCrBa.slave-socket
PS result: ?        12097 kio_uiserver [kdeinit]               
PS result: pts/1     7619 -bash
PS result: ?         7606 konsole [kdeinit] --ls               
PS result: ?         3678 /usr/local/apps/firefox/firefox-bin
PS result: ?         3672 /bin/sh /usr/local/apps/firefox/run-mozilla.sh /usr/local/apps/firefox/firefox-bin
PS result: ?         3669 /bin/sh /usr/local/apps/firefox/firefox
PS result: ?         1694 konqueror [kdeinit] -session 108f363330000117332767600000070480034_1173327676_271749
PS result: ?         1645 superkaramba -session 108f363330000117290000300000036900011_1173329213_704079
PS result: ?         1642 superkaramba -session 108f363330000117285908400000027280029_1173329213_704201
PS result: ?         1638 kaccess [kdeinit]                     
PS result: ?         1630 kicker [kdeinit]                     
PS result: ?         1627 kdesktop [kdeinit]                   
PS result: ?         1623 kwin [kdeinit] -session 108f363330000117208531500000062480000_1173329221_738408
PS result: ?         1621 ksmserver [kdeinit]                   
PS result: tty1      1619 kwrapper ksmserver
PS result: ?         1606 kded [kdeinit] --new-startup         
PS result: ?         1604 klauncher [kdeinit] --new-startup     
PS result: ?         1600 dcopserver [kdeinit] --nosid         
PS result: ?         1597 kdeinit Running...                   
PS result: tty1      1569 /bin/sh /opt/kde/bin/startkde
PS result: tty1      1567 /bin/sh /usr/X11R6/lib/X11/xinit/xinitrc
PS result: tty1      1556 /usr/X11R6/bin/xinit /usr/X11R6/lib/X11/xinit/xinitrc -- -auth /home/mark/.serverauth.1540
PS result: tty1      1540 /bin/sh /usr/X11R6/bin/startx
PS result: tty1      1514 -bash
PS result: ?          987 java -Xms16m -Xmx128m -cp /usr/local/apps/azureus/Azureus2.jar:/usr/local/apps/azureus/swt.jar -Djava.library.path=/usr/local/apps/azureus -Dazureus.install.path=/usr/local/apps/azureus org.gudy.azureus2.ui.swt.Main /tmp/The.Departed.DVDRip.XviD-PUKKA.torrent
PS result: ?          961 /bin/bash /usr/local/apps/azureus/azureus /tmp/The.Departed.DVDRip.XviD-PUKKA.torrent
PS result: TT         PID COMMAND
Console Execution error:failed to find console tty.
> start
Breakpoint 2 at 0x8048a44: file /home/mark/cb_test/pecans.cpp, line 13.
main () at /home/mark/cb_test/pecans.cpp:13
/home/mark/cb_test/pecans.cpp:13:142:beg:0x8048a44
>>>>>>cb_gdb:
> info program
Using the running image of child process 15950.
Program stopped at 0x8048a44.
It stopped at a breakpoint that has since been deleted.
Type "info stack" or "info registers" for more information.
>>>>>>cb_gdb:
> cont
Please type in a String (max. 80 characters):

Offline Pecan

  • Plugin developer
  • Lives here!
  • ****
  • Posts: 2812
Re: Problem with debugger
« Reply #36 on: March 09, 2007, 03:34:46 am »
Ok, here's the problem. You are not executing the code I sent you.
If you were, we'd see the following statements in your log:

Code
RunNixConsole.SleepPid_1 is[82576]
RunNixConsole.SleepPid_2 is[82576]
Executing: xterm  -T 'Program Console' -e sleep

We cannot go any further until we get that output.
I'll keep checking back to see if you solved this.

Are you compiling one CB, but executing another CB?
Are you sure the code is in debuggergdb.cpp?
Are you forgetting to restart CB after compiling it?
Are you compiling from the ../output dir and forgetting to move to the .../devel dir to execute?

I donno
« Last Edit: March 09, 2007, 03:46:32 am by Pecan »

kramed

  • Guest
Re: Problem with debugger
« Reply #37 on: March 09, 2007, 04:53:31 am »
Code
Command-line: /usr/bin/gdb -nx -fullname  -quiet -args bin/Debug/cb_test
Working dir : /home/mark/cb_test/
> set prompt >>>>>>cb_gdb:
RunNixConsole.SleepPid_1 is[]
RunNixConsole.SleepPid_2 is[111252]
Executing: xterm -T 'Program Console' -e sleep
Using host libthread_db library "/lib/tls/libthread_db.so.1".
(gdb) >>>>>>cb_gdb:
> show version
GNU gdb 6.5
Copyright (C) 2006 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i486-slackware-linux".
>>>>>>cb_gdb:
> set confirm off
>>>>>>cb_gdb:
> set width 0
>>>>>>cb_gdb:
> set height 0
>>>>>>cb_gdb:
> set breakpoint pending on
>>>>>>cb_gdb:
> set print asm-demangle on
>>>>>>cb_gdb:
> set unwindonsignal on
>>>>>>cb_gdb:
> set disassembly-flavor att
>>>>>>cb_gdb:
> directory /home/mark/cb_test/
>>>>>>cb_gdb:
> delete breakpoints
>>>>>>cb_gdb:
> break "/home/mark/cb_test/pecans.cpp:25"
Breakpoint 1 at 0x8048b31: file /home/mark/cb_test/pecans.cpp, line 25.
>>>>>>cb_gdb:
Executing: ps x -o tty,pid,command
PS result: ?        31414 ps x -o tty,pid,command
PS result: ?        31401 /usr/bin/gdb -nx -fullname -quiet -args bin/Debug/cb_test
PS result: ?        31252 codeblocks
PS result: ?        27347 gaim
PS result: ?        20407 kio_file [kdeinit] file /tmp/ksocket-mark/klauncherMOSOQb.slave-socket /tmp/ksocket-mark/kateonNO0a.slave-socket
PS result: ?        20390 kate [kdeinit] /home/mark/codeblocks/trunk/src/plugins/debuggergdb/debuggergdb.cpp
PS result: ?        19946 kio_file [kdeinit] file /tmp/ksocket-mark/klauncherMOSOQb.slave-socket /tmp/ksocket-mark/kwritepxMgnc.slave-socket
PS result: ?        19120 konqueror [kdeinit] --silent         
PS result: ?        15990 xchat
PS result: ?        13294 kio_file [kdeinit] file /tmp/ksocket-mark/klauncherMOSOQb.slave-socket /tmp/ksocket-mark/ark8vCrBa.slave-socket
PS result: ?        12097 kio_uiserver [kdeinit]               
PS result: pts/1     7619 -bash
PS result: ?         7606 konsole [kdeinit] --ls               
PS result: ?         3678 /usr/local/apps/firefox/firefox-bin
PS result: ?         3672 /bin/sh /usr/local/apps/firefox/run-mozilla.sh /usr/local/apps/firefox/firefox-bin
PS result: ?         3669 /bin/sh /usr/local/apps/firefox/firefox
PS result: ?         1694 konqueror [kdeinit] -session 108f363330000117332767600000070480034_1173327676_271749
PS result: ?         1645 superkaramba -session 108f363330000117290000300000036900011_1173329213_704079
PS result: ?         1642 superkaramba -session 108f363330000117285908400000027280029_1173329213_704201
PS result: ?         1638 kaccess [kdeinit]                     
PS result: ?         1630 kicker [kdeinit]                     
PS result: ?         1627 kdesktop [kdeinit]                   
PS result: ?         1623 kwin [kdeinit] -session 108f363330000117208531500000062480000_1173329221_738408
PS result: ?         1621 ksmserver [kdeinit]                   
PS result: tty1      1619 kwrapper ksmserver
PS result: ?         1606 kded [kdeinit] --new-startup         
PS result: ?         1604 klauncher [kdeinit] --new-startup     
PS result: ?         1600 dcopserver [kdeinit] --nosid         
PS result: ?         1597 kdeinit Running...                   
PS result: tty1      1569 /bin/sh /opt/kde/bin/startkde
PS result: tty1      1567 /bin/sh /usr/X11R6/lib/X11/xinit/xinitrc
PS result: tty1      1556 /usr/X11R6/bin/xinit /usr/X11R6/lib/X11/xinit/xinitrc -- -auth /home/mark/.serverauth.1540
PS result: tty1      1540 /bin/sh /usr/X11R6/bin/startx
PS result: tty1      1514 -bash
PS result: ?          987 java -Xms16m -Xmx128m -cp /usr/local/apps/azureus/Azureus2.jar:/usr/local/apps/azureus/swt.jar -Djava.library.path=/usr/local/apps/azureus -Dazureus.install.path=/usr/local/apps/azureus org.gudy.azureus2.ui.swt.Main /tmp/The.Departed.DVDRip.XviD-PUKKA.torrent
PS result: ?          961 /bin/bash /usr/local/apps/azureus/azureus /tmp/The.Departed.DVDRip.XviD-PUKKA.torrent
PS result: TT         PID COMMAND
Console Execution error:failed to find console tty.
> start
Breakpoint 2 at 0x8048a44: file /home/mark/cb_test/pecans.cpp, line 13.
main () at /home/mark/cb_test/pecans.cpp:13
/home/mark/cb_test/pecans.cpp:13:142:beg:0x8048a44
>>>>>>cb_gdb:
> info program
Using the running image of child process 31419.
Program stopped at 0x8048a44.
It stopped at a breakpoint that has since been deleted.
Type "info stack" or "info registers" for more information.
>>>>>>cb_gdb:
> cont
Please type in a String (max. 80 characters):

Offline Pecan

  • Plugin developer
  • Lives here!
  • ****
  • Posts: 2812
Re: Problem with debugger
« Reply #38 on: March 09, 2007, 05:13:40 am »
Code
Command-line: /usr/bin/gdb -nx -fullname  -quiet -args bin/Debug/cb_test
Working dir : /home/mark/cb_test/
> set prompt >>>>>>cb_gdb:
RunNixConsole.SleepPid_1 is[]
RunNixConsole.SleepPid_2 is[111252]
Executing: xterm -T 'Program Console' -e sleep
Using host libthread_db library "/lib/tls/libthread_db.so.1".
(gdb) >>>>>>cb_gdb:
> show version
GNU gdb 6.5
Copyright (C) 2006 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i486-slackware-linux".
>>>>>>cb_gdb:
> set confirm off
>>>>>>cb_gdb:
> set width 0
>>>>>>cb_gdb:
> set height 0
>>>>>>cb_gdb:
> set breakpoint pending on
>>>>>>cb_gdb:
> set print asm-demangle on
>>>>>>cb_gdb:
> set unwindonsignal on
>>>>>>cb_gdb:
> set disassembly-flavor att
>>>>>>cb_gdb:
> directory /home/mark/cb_test/
>>>>>>cb_gdb:
> delete breakpoints
>>>>>>cb_gdb:
> break "/home/mark/cb_test/pecans.cpp:25"
Breakpoint 1 at 0x8048b31: file /home/mark/cb_test/pecans.cpp, line 25.
>>>>>>cb_gdb:
Executing: ps x -o tty,pid,command
PS result: ?        31414 ps x -o tty,pid,command
PS result: ?        31401 /usr/bin/gdb -nx -fullname -quiet -args bin/Debug/cb_test
PS result: ?        31252 codeblocks
PS result: ?        27347 gaim
PS result: ?        20407 kio_file [kdeinit] file /tmp/ksocket-mark/klauncherMOSOQb.slave-socket /tmp/ksocket-mark/kateonNO0a.slave-socket
PS result: ?        20390 kate [kdeinit] /home/mark/codeblocks/trunk/src/plugins/debuggergdb/debuggergdb.cpp
PS result: ?        19946 kio_file [kdeinit] file /tmp/ksocket-mark/klauncherMOSOQb.slave-socket /tmp/ksocket-mark/kwritepxMgnc.slave-socket
PS result: ?        19120 konqueror [kdeinit] --silent         
PS result: ?        15990 xchat
PS result: ?        13294 kio_file [kdeinit] file /tmp/ksocket-mark/klauncherMOSOQb.slave-socket /tmp/ksocket-mark/ark8vCrBa.slave-socket
PS result: ?        12097 kio_uiserver [kdeinit]               
PS result: pts/1     7619 -bash
PS result: ?         7606 konsole [kdeinit] --ls               
PS result: ?         3678 /usr/local/apps/firefox/firefox-bin
PS result: ?         3672 /bin/sh /usr/local/apps/firefox/run-mozilla.sh /usr/local/apps/firefox/firefox-bin
PS result: ?         3669 /bin/sh /usr/local/apps/firefox/firefox
PS result: ?         1694 konqueror [kdeinit] -session 108f363330000117332767600000070480034_1173327676_271749
PS result: ?         1645 superkaramba -session 108f363330000117290000300000036900011_1173329213_704079
PS result: ?         1642 superkaramba -session 108f363330000117285908400000027280029_1173329213_704201
PS result: ?         1638 kaccess [kdeinit]                     
PS result: ?         1630 kicker [kdeinit]                     
PS result: ?         1627 kdesktop [kdeinit]                   
PS result: ?         1623 kwin [kdeinit] -session 108f363330000117208531500000062480000_1173329221_738408
PS result: ?         1621 ksmserver [kdeinit]                   
PS result: tty1      1619 kwrapper ksmserver
PS result: ?         1606 kded [kdeinit] --new-startup         
PS result: ?         1604 klauncher [kdeinit] --new-startup     
PS result: ?         1600 dcopserver [kdeinit] --nosid         
PS result: ?         1597 kdeinit Running...                   
PS result: tty1      1569 /bin/sh /opt/kde/bin/startkde
PS result: tty1      1567 /bin/sh /usr/X11R6/lib/X11/xinit/xinitrc
PS result: tty1      1556 /usr/X11R6/bin/xinit /usr/X11R6/lib/X11/xinit/xinitrc -- -auth /home/mark/.serverauth.1540
PS result: tty1      1540 /bin/sh /usr/X11R6/bin/startx
PS result: tty1      1514 -bash
PS result: ?          987 java -Xms16m -Xmx128m -cp /usr/local/apps/azureus/Azureus2.jar:/usr/local/apps/azureus/swt.jar -Djava.library.path=/usr/local/apps/azureus -Dazureus.install.path=/usr/local/apps/azureus org.gudy.azureus2.ui.swt.Main /tmp/The.Departed.DVDRip.XviD-PUKKA.torrent
PS result: ?          961 /bin/bash /usr/local/apps/azureus/azureus /tmp/The.Departed.DVDRip.XviD-PUKKA.torrent
PS result: TT         PID COMMAND
Console Execution error:failed to find console tty.
> start
Breakpoint 2 at 0x8048a44: file /home/mark/cb_test/pecans.cpp, line 13.
main () at /home/mark/cb_test/pecans.cpp:13
/home/mark/cb_test/pecans.cpp:13:142:beg:0x8048a44
>>>>>>cb_gdb:
> info program
Using the running image of child process 31419.
Program stopped at 0x8048a44.
It stopped at a breakpoint that has since been deleted.
Type "info stack" or "info registers" for more information.
>>>>>>cb_gdb:
> cont
Please type in a String (max. 80 characters):

Ok, that's it. I see the error. Looks like a wxWidgets problem on slackware.

Will now do a fix.
« Last Edit: March 09, 2007, 05:18:25 am by Pecan »

kramed

  • Guest
Re: Problem with debugger
« Reply #39 on: March 09, 2007, 05:20:40 am »
Thanks. Keep me posted.

Offline Pecan

  • Plugin developer
  • Lives here!
  • ****
  • Posts: 2812
Re: Problem with debugger
« Reply #40 on: March 09, 2007, 05:30:31 am »
Ok, here we go again with the cut and paste.

Again paste the following routines over the last two routines in debuggergdb.cpp just like we did before.
Compile, quit CB, restart CB and do the test.

Notice I change two lines, commenting out

//cmd << 80000 + ::wxGetProcessId(); //make a unique sleep command

and added:

    cmd << sleepPid;

because it appears SlackWare wxWidgets has a problem with addition in a "streamed" string.


Code
// ----------------------------------------------------------------------------
int DebuggerGDB::RunNixConsole()
// ----------------------------------------------------------------------------
{
    // start the xterm and put the shell to sleep with -e sleep 80000
    // fetch the xterm tty so we can issue to gdb a "tty /dev/pts/#"
    // redirecting program stdin/stdout/stderr to the xterm console.

  #ifndef __WXMSW__
    wxString cmd;
    wxString title = wxT("Program Console");
    m_nConsolePid = 0;
    // for non-win platforms, use m_ConsoleTerm to run the console app
    wxString term = Manager::Get()->GetConfigManager(_T("app"))->Read(_T("/console_terminal"), DEFAULT_CONSOLE_TERM);
    //term.Replace(_T("$TITLE"), _T("'") + _T("*nixConsole") + _T("'"));
    term.Replace(_T("$TITLE"), _T("'") + title + _T("'"));
    cmd << term << _T(" ");
    cmd << wxT("sleep ");
    //cmd << 80000 + ::wxGetProcessId(); //make a unique sleep command

    wxString sleepPid; sleepPid << 80000 + ::wxGetProcessId();
    DebugLog(wxString::Format(wxT("RunNixConsole.SleepPid_1 is[%s]"),sleepPid.c_str() ));
    sleepPid = wxString::Format(wxT("%d"),80000+ ::wxGetProcessId());
    DebugLog(wxString::Format(wxT("RunNixConsole.SleepPid_2 is[%s]"),sleepPid.c_str() ));

    cmd << sleepPid;

    Manager::Get()->GetMacrosManager()->ReplaceEnvVars(cmd);
    //Manager::Get()->GetMessageManager()->Log(m_PageIndex, _("Executing: %s"), cmd.c_str() );
    DebugLog(wxString::Format( _("Executing: %s"), cmd.c_str()) );
    //start xterm -e sleep {some unique # of seconds}
    m_nConsolePid = wxExecute(cmd, wxEXEC_ASYNC);
    if (m_nConsolePid <= 0) return -1;

    // Issue the PS command to get the /dev/tty device name
    // First, wait for the xterm to settle down, else PS won't see the sleep task
    Manager::Yield();
    ::wxSleep(1);
    m_ConsoleTty = GetConsoleTty(m_nConsolePid);
    if (not m_ConsoleTty.IsEmpty() )
    {   // show what we found as tty
        DebugLog(wxString::Format(wxT("GetConsoleTTY[%s]ConsolePid[%d]"),m_ConsoleTty.c_str(),m_nConsolePid));
        return m_nConsolePid;
    }
    // failed to find the console tty
    DebugLog( wxT("Console Execution error:failed to find console tty."));
    if (m_nConsolePid != 0)::wxKill(m_nConsolePid);
    m_nConsolePid = 0;
  #endif//ndef __WWXMSW__
    return -1;
}
// ----------------------------------------------------------------------------
wxString DebuggerGDB::GetConsoleTty(int ConsolePid)
// ----------------------------------------------------------------------------
{
    // execute the ps x -o command  and read PS output to get the /dev/tty field

unsigned long ConsPid = ConsolePid;
wxString psCmd;
wxArrayString psOutput;
wxArrayString psErrors;

psCmd << wxT("ps x -o tty,pid,command");
    DebugLog(wxString::Format( _("Executing: %s"), psCmd.c_str()) );
int result = wxExecute(psCmd, psOutput, psErrors, wxEXEC_SYNC);
psCmd.Clear();
if (result != 0)
{   psCmd << wxT("Result of ps x:") << result;
        DebugLog(wxString::Format( _("Execution Error:"), psCmd.c_str()) );
        return wxEmptyString;
}

    wxString ConsTtyStr;
    wxString ConsPidStr;
    ConsPidStr << ConsPid;
    //find task with our unique sleep time
    wxString uniqueSleepTimeStr;
    uniqueSleepTimeStr << wxT("sleep ") << 80000 + ::wxGetProcessId();
    // search the output of "ps pid" command
    int knt = psOutput.GetCount();
    for (int i=knt-1; i>-1; --i)
    {   psCmd = psOutput.Item(i);
        DebugLog(wxString::Format( _("PS result: %s"), psCmd.c_str()) );
        // find the pts/# or tty/# or whatever it's called
        // by seaching the output of "ps x -o tty,pid,command" command.
        // The output of ps looks like:
        // TT       PID   COMMAND
        // pts/0    13342 /bin/sh ./run.sh
        // pts/0    13343 /home/pecan/devel/trunk/src/devel/codeblocks
        // pts/0    13361 /usr/bin/gdb -nx -fullname -quiet -args ./conio
        // pts/0    13362 xterm -font -*-*-*-*-*-*-20-*-*-*-*-*-*-* -T Program Console -e sleep 93343
        // pts/2    13363 sleep 93343
        // ?        13365 /home/pecan/proj/conio/conio
        // pts/1    13370 ps x -o tty,pid,command

        if (psCmd.Contains(uniqueSleepTimeStr))
        do
        {   // check for correct "sleep" line
            if (psCmd.Contains(wxT("-T"))) break; //error;wrong sleep line.
            // found "sleep 93343" string, extract tty field
            ConsTtyStr = wxT("/dev/") + psCmd.BeforeFirst(' ');
            DebugLog(wxString::Format( _("TTY is[%s]"), ConsTtyStr.c_str()) );
            return ConsTtyStr;
        }while(0);//if do
    }//for

    knt = psErrors.GetCount();
    for (int i=0; i<knt; ++i)
        DebugLog(wxString::Format( _("PS Error:%s"), psErrors.Item(i).c_str()) );
    return wxEmptyString;
}


Offline Pecan

  • Plugin developer
  • Lives here!
  • ****
  • Posts: 2812
Re: Problem with debugger
« Reply #41 on: March 09, 2007, 06:15:54 am »
Sorry, I found another problem. Let's do it again...

I had to change two more lines:

Code
//uniqueSleepTimeStr << wxT("sleep ") << 80000 + ::wxGetProcessId();
    uniqueSleepTimeStr << wxT("sleep ") << wxString::Format(wxT("%d"),80000 + ::wxGetProcessId());

If you'll change your build target to "Debugger", you can compile and link this code faster. But be sure to change it back to "All" when you're through


Code
// ----------------------------------------------------------------------------
int DebuggerGDB::RunNixConsole()
// ----------------------------------------------------------------------------
{
    // start the xterm and put the shell to sleep with -e sleep 80000
    // fetch the xterm tty so we can issue to gdb a "tty /dev/pts/#"
    // redirecting program stdin/stdout/stderr to the xterm console.

  #ifndef __WXMSW__
    wxString cmd;
    wxString title = wxT("Program Console");
    m_nConsolePid = 0;
    // for non-win platforms, use m_ConsoleTerm to run the console app
    wxString term = Manager::Get()->GetConfigManager(_T("app"))->Read(_T("/console_terminal"), DEFAULT_CONSOLE_TERM);
    //term.Replace(_T("$TITLE"), _T("'") + _T("*nixConsole") + _T("'"));
    term.Replace(_T("$TITLE"), _T("'") + title + _T("'"));
    cmd << term << _T(" ");
    cmd << wxT("sleep ");
    cmd << wxString::Format(wxT("%d"),80000 + ::wxGetProcessId());
    // Bug:
    // Math in streamed strings on SlackWare does not work
    //cmd << 80000 + ::wxGetProcessId(); //make a unique sleep command
    //wxString sleepPid; sleepPid << 80000 + ::wxGetProcessId();
    //DebugLog(wxString::Format(wxT("RunNixConsole.SleepPid_1 is[%s]"),sleepPid.c_str() ));
    //sleepPid = wxString::Format(wxT("%d"),80000+ ::wxGetPro cessId());
    //DebugLog(wxString::Format(wxT("RunNixConsole.SleepPid_2 is[%s]"),sleepPid.c_str() ));

    Manager::Get()->GetMacrosManager()->ReplaceEnvVars(cmd);
    //Manager::Get()->GetMessageManager()->Log(m_PageIndex, _("Executing: %s"), cmd.c_str() );
    DebugLog(wxString::Format( _("Executing: %s"), cmd.c_str()) );
    //start xterm -e sleep {some unique # of seconds}
    m_nConsolePid = wxExecute(cmd, wxEXEC_ASYNC);
    if (m_nConsolePid <= 0) return -1;

    // Issue the PS command to get the /dev/tty device name
    // First, wait for the xterm to settle down, else PS won't see the sleep task
    Manager::Yield();
    ::wxSleep(1);
    m_ConsoleTty = GetConsoleTty(m_nConsolePid);
    if (not m_ConsoleTty.IsEmpty() )
    {   // show what we found as tty
        DebugLog(wxString::Format(wxT("GetConsoleTTY[%s]ConsolePid[%d]"),m_ConsoleTty.c_str(),m_nConsolePid));
        return m_nConsolePid;
    }
    // failed to find the console tty
    DebugLog( wxT("Console Execution error:failed to find console tty."));
    if (m_nConsolePid != 0)::wxKill(m_nConsolePid);
    m_nConsolePid = 0;
  #endif//ndef __WWXMSW__
    return -1;
}
// ----------------------------------------------------------------------------
wxString DebuggerGDB::GetConsoleTty(int ConsolePid)
// ----------------------------------------------------------------------------
{
    // execute the ps x -o command  and read PS output to get the /dev/tty field

unsigned long ConsPid = ConsolePid;
wxString psCmd;
wxArrayString psOutput;
wxArrayString psErrors;

psCmd << wxT("ps x -o tty,pid,command");
    DebugLog(wxString::Format( _("Executing: %s"), psCmd.c_str()) );
int result = wxExecute(psCmd, psOutput, psErrors, wxEXEC_SYNC);
psCmd.Clear();
if (result != 0)
{   psCmd << wxT("Result of ps x:") << result;
        DebugLog(wxString::Format( _("Execution Error:"), psCmd.c_str()) );
        return wxEmptyString;
}

    wxString ConsTtyStr;
    wxString ConsPidStr;
    ConsPidStr << ConsPid;
    //find task with our unique sleep time
    wxString uniqueSleepTimeStr;
    //uniqueSleepTimeStr << wxT("sleep ") << 80000 + ::wxGetProcessId();
    uniqueSleepTimeStr << wxT("sleep ") << wxString::Format(wxT("%d"),80000 + ::wxGetProcessId());
    // search the output of "ps pid" command
    int knt = psOutput.GetCount();
    for (int i=knt-1; i>-1; --i)
    {   psCmd = psOutput.Item(i);
        DebugLog(wxString::Format( _("PS result: %s"), psCmd.c_str()) );
        // find the pts/# or tty/# or whatever it's called
        // by seaching the output of "ps x -o tty,pid,command" command.
        // The output of ps looks like:
        // TT       PID   COMMAND
        // pts/0    13342 /bin/sh ./run.sh
        // pts/0    13343 /home/pecan/devel/trunk/src/devel/codeblocks
        // pts/0    13361 /usr/bin/gdb -nx -fullname -quiet -args ./conio
        // pts/0    13362 xterm -font -*-*-*-*-*-*-20-*-*-*-*-*-*-* -T Program Console -e sleep 93343
        // pts/2    13363 sleep 93343
        // ?        13365 /home/pecan/proj/conio/conio
        // pts/1    13370 ps x -o tty,pid,command

        if (psCmd.Contains(uniqueSleepTimeStr))
        do
        {   // check for correct "sleep" line
            if (psCmd.Contains(wxT("-T"))) break; //error;wrong sleep line.
            // found "sleep 93343" string, extract tty field
            ConsTtyStr = wxT("/dev/") + psCmd.BeforeFirst(' ');
            DebugLog(wxString::Format( _("TTY is[%s]"), ConsTtyStr.c_str()) );
            return ConsTtyStr;
        }while(0);//if do
    }//for

    knt = psErrors.GetCount();
    for (int i=0; i<knt; ++i)
        DebugLog(wxString::Format( _("PS Error:%s"), psErrors.Item(i).c_str()) );
    return wxEmptyString;
}

« Last Edit: March 09, 2007, 06:20:10 am by Pecan »

kramed

  • Guest
Re: Problem with debugger
« Reply #42 on: March 09, 2007, 06:29:38 am »
It works!!!!!

kramed

  • Guest
Re: Problem with debugger
« Reply #43 on: March 09, 2007, 06:33:39 am »
I love you Pecan. Wonder how many posts this thread is up to. I am going to bed... Thanks again!

Offline Pecan

  • Plugin developer
  • Lives here!
  • ****
  • Posts: 2812
Re: Problem with debugger
« Reply #44 on: March 09, 2007, 01:55:56 pm »
Thanks for your hard work and persistence. It'll make the code better for all of us.