From vapniks at yahoo.com  Mon Feb  4 13:56:26 2008
From: vapniks at yahoo.com (Joe Bloggs)
Date: Mon, 04 Feb 2008 12:56:26 +0000
Subject: [Rd] gdb
References: <871w7ualss.fsf@DEBLAP1.BeNet>
	<18341.58878.423585.780727@ron.nulle.part>
	<878x21cwuw.fsf@DEBLAP1.BeNet>
	<18342.30438.828619.519320@ron.nulle.part>
Message-ID: <87fxw8q3r9.fsf@DEBLAP1.BeNet>

>Dirk Eddelbuettel <edd at debian.org> writes:
>
> On 4 February 2008 at 01:51, Joe Bloggs wrote:
> | Dirk Eddelbuettel <edd at debian.org> writes:
> | 
> | > On 3 February 2008 at 01:08, Joe Bloggs wrote:
> | > | I am using gdb to debug a c++ library I made for R using Rcpp.
> | > | However, when I step through the code it seems to go all over the place, and some of the variables have been optimized out so I can't see their values.
> | > | How can I compile without optimization?
> | >
> | > Set MAKEFLAGS accordingly, possibly by editing R's Makeconf.  This is
> | > documented in the 'R Extensions' manual.
> | >
> | 
> | Thanks, for the benefit of others..
> | 
> | I changed the CXXFLAGS line in /etc/R/Makeconf from:
> | 
> | CXXFLAGS = -g -O2
> | 
> | to:
> | 
> | CXXFLAGS = -ggdb -O2
>
> Hm, I never seem to have needed -ggdb, for me -g was usually suffcient. Any
> idea why you needed -ggdb ?
> 
> | which seems to work. Changing -O2 to just -O would remove compiler optimizations, but it turns out this wasn't necessary.

Oops, sorry, I must have made a mistake. Tried it again this morning and realize that I do need to remove compiler optimizations. So probably -g will work just as well as -ggdb, but -O is needed instead of -O2.

> | Alternatively I could compile my package with
> | 
> | MAKEFLAGS="CXXFLAGS=-ggdb -O2" R CMD INSTALL ...
> | 
> | to temporarily change the flags.
> | 
> | 
> | > | Also, is there any neat way to run R with gdb through emacs?
> | >
> | > Yes, using 'M-x gdb' to launcg the gdb frontend. I also use ddd on Linux.
> | >
> | > Using the debugger is also described in the 'R Extensions' manual.
> | >
> | 
> | In the manual it says to run R through gdb by: R -d gdb
> | how can I do this in emacs?
> | Alternatively how do I run R through gdb after alreay starting gdb?
>
> I thought that was in the manual, but it seems it isn't.  Doug Bates
> describes it once or twice a few years back; one quick Google search leads to
>
> 	http://tolstoy.newcastle.edu.au/R/help/03a/0566.html
>
> Hope this helps, Dirk
>

Thanks for the link, I also found this: 
http://cran.r-project.org/doc/FAQ/R-FAQ.html#Debugging-R-from-within-Emacs
(should have checked earlier!)
However, I can't seem to get both R & gdb working together in emacs. 
I start R in emacs, load the library to be debugged, then start gdb in emacs, attach it to the R process, set the breakpoint, type "signal 0" in gdb to let R take control, then run the R function I am debugging and... emacs hangs up on me :(

I can get it to work if I run R in a seperate shell, and run gdb from emacs, attaching it to the R process as before. 
If I also load the source for the package I'm debugging then it also shows me whereabouts in that file I am which is very nice.
 
> | 
> | > Hope this helps, Dirk
> | >
> | > -- 
> | > Three out of two people have difficulties with fractions.
> | >
> | > ______________________________________________
> | > R-devel at r-project.org mailing list
> | > https://stat.ethz.ch/mailman/listinfo/r-devel
> | 
> | ______________________________________________
> | R-devel at r-project.org mailing list
> | https://stat.ethz.ch/mailman/listinfo/r-devel
>
> -- 
> Three out of two people have difficulties with fractions.
>
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel



[Rd] gdb
Joe Bloggs