From maechler at stat.math.ethz.ch  Mon Feb  4 09:57:41 2008
From: maechler at stat.math.ethz.ch (Martin Maechler)
Date: Mon, 4 Feb 2008 09:57:41 +0100
Subject: [Rd] gdb
In-Reply-To: <18342.30438.828619.519320@ron.nulle.part>
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: <18342.54149.107916.215412@deb2.ethz.ch>

>>>>> "DE" == Dirk Eddelbuettel <edd at debian.org>
>>>>>     on Sun, 3 Feb 2008 20:22:30 -0600 writes:

    DE> On 4 February 2008 at 01:51, Joe Bloggs wrote:
    DE> | Dirk Eddelbuettel <edd at debian.org> writes:
    DE> | 
    DE> | > On 3 February 2008 at 01:08, Joe Bloggs wrote:
    DE> | > | I am using gdb to debug a c++ library I made for R using Rcpp.
    DE> | > | 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.
    DE> | > | How can I compile without optimization?
    DE> | >
    DE> | > Set MAKEFLAGS accordingly, possibly by editing R's Makeconf.  This is
    DE> | > documented in the 'R Extensions' manual.
    DE> | >
    DE> | 
    DE> | Thanks, for the benefit of others..
    DE> | 
    DE> | I changed the CXXFLAGS line in /etc/R/Makeconf from:
    DE> | 
    DE> | CXXFLAGS = -g -O2
    DE> | 
    DE> | to:
    DE> | 
    DE> | CXXFLAGS = -ggdb -O2

    DE> Hm, I never seem to have needed -ggdb, for me -g was usually suffcient. Any
    DE> idea why you needed -ggdb ?
 
    DE> | which seems to work. Changing -O2 to just -O would remove compiler optimizations, but it turns out this wasn't necessary.
    DE> | Alternatively I could compile my package with
    DE> | 
    DE> | MAKEFLAGS="CXXFLAGS=-ggdb -O2" R CMD INSTALL ...
    DE> | 
    DE> | to temporarily change the flags.
    DE> | 
    DE> | 
    DE> | > | Also, is there any neat way to run R with gdb through emacs?
    DE> | >
    DE> | > Yes, using 'M-x gdb' to launcg the gdb frontend. I also use ddd on Linux.
    DE> | >
    DE> | > Using the debugger is also described in the 'R Extensions' manual.
    DE> | >
    DE> | 
    DE> | In the manual it says to run R through gdb by: R -d gdb
    DE> | how can I do this in emacs?

C-u M-x R [Enter] -d gdb [Enter]
===

C-u: == Emacs "Prefix" 
        allows you to specify command line arguments to R



    DE> | Alternatively how do I run R through gdb after alreay starting gdb?

    DE> I thought that was in the manual, but it seems it isn't.  Doug Bates
    DE> describes it once or twice a few years back; one quick Google search leads to

    DE> http://tolstoy.newcastle.edu.au/R/help/03a/0566.html



    DE> Hope this helps, Dirk



[Rd] gdb
Martin Maechler