|
From: Luc B. <luc...@ma...> - 2009-05-09 12:40:19
Attachments:
smime.p7s
|
Hello there,
it looks like the code currently on the DARWIN branch (I tried with
rev 9801) has dropped support for the stabs gdb format. E.g. the
following snippet:
#include <iostream>
int main() {
const int n = 16;
double *x = new double[n];
for (int i=0; i<n; ++i) x[i] = i;
for (int i=1; i<n; ++i) x[i] = (x[i-1] + x[i] + x[i+1])/3;
std::cout << "| ";
for (int i=0; i<n; ++i) std::cout << x[i] << " | ";
std::cout << "\n";
return 0;
}
and issuing the following on the command line:
~/Developer/Tests> g++ -o valgrind_tst -g2 -gstabs+ valgrind_tst.cpp
~/Developer/Tests> valgrind ./valgrind_tst
[...]
--29353-- ./valgrind_tst:
--29353-- dSYM directory is missing; consider using --auto-run-
dsymutil=yes
[...]
So I ran it again with the suggested option:
~/Developer/Tests> valgrind --auto-run-dsymutil=yes ./valgrind_tst
[...]
--29411-- run: /usr/bin/dsymutil ./valgrind_tst
warning: no debug symbols in executable (-arch i386)
==29411== Invalid read of size 8
==29411== at 0x1DE5: main (in ./valgrind_tst)
That means that Dwarf is now compulsory, doesn't it?
I know that stabs is pretty old and that Apple has officially moved to
dwarf a while ago but then there is bug 27574 which used to plague gcc
4.1/4.2 before it was fixed on the GNU repositories. However Apple has
not integrated that patch to the gdb they ship even with the latest
XCode (3.1). As a result, I am pretty much forced to use stabs because
not being able to inspect variables in constructors is too crippling.
Could a kind soul at least tell me what rev I should check out from
the Darwin branch to get the support for stabs back?
Thanks a bunch,
Luc Bourhis
|