From: Luc B. <luc...@ma...> - 2009-05-09 12:40:19
|
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 |