I have successfully built a mingw32 arm-eabi insight that works fine. This is with a 7.4.50-20120530cvs snapshot. This is also with the bundled tcl/tk/itcl functions. I also rebuilt a previous version I made for fedora that used an insight snapshot from 2011 but without the tcl/tk/itcl, but using the system versions. It also used the gdb files (except gdbtk which are still insight's own) from Codesourcery. This almost works on windows (now using bundled tcl/tk/itcl) but I can't set breakpoints with the mouse. However, can set bp's using the command line, e.g., "b main" or "b file.cpp:345". Can also delete bp's with mouse (just can't click and set them and no red square appears unless set with command line). I don't know where in the insight/gdb code this graphical breakpoint setting is handled. However, this mingw version containing codesourcery's gdb (version 7.2) still has one advantage over the the pure insight described in first paragraph: when an ISR is entered the stack display shows the task level context that the ISR was called from like this: main() fn1() fun2() <signal handler called> myIsr() isrSub() The linux build also shows the this same stack/backtrace display (also can set bp's with mouse in linux version). But the "pure" insight version stack display will look something like this: ?? ?? myIsr() isrSub() I have looked around but don't see this listed anywhere as an improved feature in gdb or codesourcery's version of gdb. But I find it useful and wonder what it would take to add this to the pure insight version? -gene
Hi Gene, > I also rebuilt a previous version I made for fedora that used an > insight > snapshot from 2011 but without the tcl/tk/itcl, but using the system > versions. It also used the gdb files (except gdbtk which are still > insight's own) from Codesourcery. This almost works on windows (now > using bundled tcl/tk/itcl) but I can't set breakpoints with the > mouse. It might that the gdbtk code you are using is not matching the breakpoint handling code in the underlying Codesourcery gdb. > However, this mingw version containing codesourcery's gdb > (version 7.2) > still has one advantage over the the pure insight described in first > paragraph: when an ISR is entered the stack display shows the > task level > context that the ISR was called from like this: > > main() > fn1() > fun2() > <signal handler called> > myIsr() > isrSub() > > The linux build also shows the this same stack/backtrace display > (also can set bp's with mouse in linux version). > But the "pure" insight > version stack display will look something like this: > > ?? > ?? > myIsr() > isrSub() > > I have looked around but don't see this listed anywhere as > an improved feature in gdb or codesourcery's version of > gdb. But I find it useful and wonder what it would take > to add this to the pure insight version? I don't believe (from my stomach) that the problem here comes from insight itself. Stack unwinding is done using gdb's facilities. Have you tried a commandline mingw gdb (built from the very same code base) and did you issue a "bt" command there. Do you see than a correct stack dump? Or have you tried doing a "bt" in insight's console? Is the stackdump there correct than? Roland
On 06/01/2012 04:18 AM, Roland Schwingel wrote: > Hi Gene, > > > I also rebuilt a previous version I made for fedora that used an > > insight > > snapshot from 2011 but without the tcl/tk/itcl, but using the system > > versions. It also used the gdb files (except gdbtk which are still > > insight's own) from Codesourcery. This almost works on windows (now > > using bundled tcl/tk/itcl) but I can't set breakpoints with the > > mouse. > It might that the gdbtk code you are using is not matching the > breakpoint handling code in the underlying Codesourcery gdb. It worked OK when I built the "same" code for linux. However there may be some differences in the code so "same" may not be 100% accurate. > > > However, this mingw version containing codesourcery's gdb > > (version 7.2) > > still has one advantage over the the pure insight described in first > > paragraph: when an ISR is entered the stack display shows the > > task level > > context that the ISR was called from like this: > > > > main() > > fn1() > > fun2() > > <signal handler called> > > myIsr() > > isrSub() > > > > The linux build also shows the this same stack/backtrace display > > (also can set bp's with mouse in linux version). > > But the "pure" insight > > version stack display will look something like this: > > > > ?? > > ?? > > myIsr() > > isrSub() > > > > I have looked around but don't see this listed anywhere as > > an improved feature in gdb or codesourcery's version of > > gdb. But I find it useful and wonder what it would take > > to add this to the pure insight version? > I don't believe (from my stomach) that the problem here comes > from insight itself. Stack unwinding is done using gdb's > facilities. Have you tried a commandline mingw gdb > (built from the very same code base) and did you issue a > "bt" command there. Do you see than a correct stack dump? > Or have you tried doing a "bt" in insight's console? Is > the stackdump there correct than? Just tried the bt in insight's console and see the same thing. However, there is an additional line that says: Backtrace stopped: previous frame identical to this frame (corrupt stack?). Also tried running the gdb.exe version built at the same time and it also shows the same stack frame with ??'s. Another topic: I have problem with gdb on windows: when I do ctrl-c to halt my program it exits gdb leaving the program (in my remote target) running. It halts only after I restart gdb. I don't remember it doing this on linux (ctrl-c == stop sign in insight), but I seldom use command line gdb. Thanks, -gene > > Roland >