[cfe-dev] My clang program crashes during initialisation, gives glibc detected, free(): invalid pointer
andrewh
andrewaah at gmail.com
Thu Nov 15 19:38:04 PST 2012
Hi, I wrote a clang program which traversed an ast, a while ago on windows 7
(think it was 32bit). But now I've recently reinstalled llvm/clang from the
repository on ubuntu 12.04 64bit, with gcc/g++ 4.6.3.
And when I try run the code from my original program to initialise clang,
*cextract2.cpp:*
#include <clang/Basic/Diagnostic.h>
#include <clang/Frontend/CompilerInstance.h>
#include <clang/Basic/TargetOptions.h>
#include <clang/Basic/TargetInfo.h>
#include <llvm/Support/Host.h>
int main(int argc, char* argv[]) {
clang::CompilerInstance ci;
//
ci.createDiagnostics(0,0);
clang::DiagnosticsEngine &diagnostics=ci.getDiagnostics();
diagnostics.setIgnoreAllWarnings(true);
//
clang::TargetOptions to;
to.Triple = llvm::sys::getDefaultTargetTriple();
//
clang::TargetInfo *pti=
clang::TargetInfo::CreateTargetInfo(ci.getDiagnostics(),to);
ci.setTarget(pti); //crashes on this function call
return 0;
}
*I get these errors:*
*** glibc detected *** bin/cextract2: free(): invalid pointer:
0x00007f7be917a76
0 ***
======= Backtrace: =========
/lib/x86_64-linux-gnu/libc.so.6(+0x7eb96)[0x7f7be8e40b96]
bin/cextract2[0x417707]
bin/cextract2[0xa0c13c]
bin/cextract2[0xa1d709]
bin/cextract2[0x41074c]
bin/cextract2[0x40fa26]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xed)[0x7f7be8de376d]
bin/cextract2[0x4103d9]
======= Memory map: ========
00400000-00b93000 r-xp 00000000 08:07 6293906
/home/a
ndrew/Desktop/cextract2/bin/cextract2
00d93000-00dea000 r--p 00793000 08:07 6293906
/home/a
ndrew/Desktop/cextract2/bin/cextract2
00dea000-00deb000 rw-p 007ea000 08:07 6293906
/home/a
ndrew/Desktop/cextract2/bin/cextract2
00deb000-00ded000 rw-p 00000000 00:00 0
019d1000-019f2000 rw-p 00000000 00:00 0
[heap]
7f7be8bac000-7f7be8bc1000 r-xp 00000000 08:06 1314383
/lib/x8
6_64-linux-gnu/libgcc_s.so.1
7f7be8bc1000-7f7be8dc0000 ---p 00015000 08:06 1314383
/lib/x8
6_64-linux-gnu/libgcc_s.so.1
7f7be8dc0000-7f7be8dc1000 r--p 00014000 08:06 1314383
/lib/x8
6_64-linux-gnu/libgcc_s.so.1
7f7be8dc1000-7f7be8dc2000 rw-p 00015000 08:06 1314383
/lib/x8
6_64-linux-gnu/libgcc_s.so.1
7f7be8dc2000-7f7be8f77000 r-xp 00000000 08:06 1319373
/lib/x8
6_64-linux-gnu/libc-2.15.so
7f7be8f77000-7f7be9176000 ---p 001b5000 08:06 1319373
/lib/x8
6_64-linux-gnu/libc-2.15.so
7f7be9176000-7f7be917a000 r--p 001b4000 08:06 1319373
/lib/x8
6_64-linux-gnu/libc-2.15.so
7f7be917a000-7f7be917c000 rw-p 001b8000 08:06 1319373
/lib/x8
6_64-linux-gnu/libc-2.15.so
7f7be917c000-7f7be9181000 rw-p 00000000 00:00 0
7f7be9181000-7f7be927c000 r-xp 00000000 08:06 1319381
/lib/x8
6_64-linux-gnu/libm-2.15.so
7f7be927c000-7f7be947b000 ---p 000fb000 08:06 1319381
/lib/x8
6_64-linux-gnu/libm-2.15.so
7f7be947b000-7f7be947c000 r--p 000fa000 08:06 1319381
/lib/x8
6_64-linux-gnu/libm-2.15.so
7f7be947c000-7f7be947d000 rw-p 000fb000 08:06 1319381
/lib/x8
6_64-linux-gnu/libm-2.15.so
7f7be947d000-7f7be955f000 r-xp 00000000 08:06 2105405
/usr/li
b/x86_64-linux-gnu/libstdc++.so.6.0.16
7f7be955f000-7f7be975e000 ---p 000e2000 08:06 2105405
/usr/li
b/x86_64-linux-gnu/libstdc++.so.6.0.16
7f7be975e000-7f7be9766000 r--p 000e1000 08:06 2105405
/usr/li
b/x86_64-linux-gnu/libstdc++.so.6.0.16
7f7be9766000-7f7be9768000 rw-p 000e9000 08:06 2105405
/usr/li
b/x86_64-linux-gnu/libstdc++.so.6.0.16
7f7be9768000-7f7be977d000 rw-p 00000000 00:00 0
7f7be977d000-7f7be977f000 r-xp 00000000 08:06 1319372
/lib/x8
6_64-linux-gnu/libdl-2.15.so
7f7be977f000-7f7be997f000 ---p 00002000 08:06 1319372
/lib/x8
6_64-linux-gnu/libdl-2.15.so
7f7be997f000-7f7be9980000 r--p 00002000 08:06 1319372
/lib/x8
6_64-linux-gnu/libdl-2.15.so
7f7be9980000-7f7be9981000 rw-p 00003000 08:06 1319372
/lib/x8
6_64-linux-gnu/libdl-2.15.so
7f7be9981000-7f7be9999000 r-xp 00000000 08:06 1319375
/lib/x8
6_64-linux-gnu/libpthread-2.15.so
7f7be9999000-7f7be9b98000 ---p 00018000 08:06 1319375
/lib/x8
6_64-linux-gnu/libpthread-2.15.so
7f7be9b98000-7f7be9b99000 r--p 00017000 08:06 1319375
/lib/x8
6_64-linux-gnu/libpthread-2.15.so
7f7be9b99000-7f7be9b9a000 rw-p 00018000 08:06 1319375
/lib/x8
6_64-linux-gnu/libpthread-2.15.so
7f7be9b9a000-7f7be9b9e000 rw-p 00000000 00:00 0
7f7be9b9e000-7f7be9bc0000 r-xp 00000000 08:06 1319387
/lib/x8
6_64-linux-gnu/ld-2.15.so
7f7be9d99000-7f7be9d9f000 rw-p 00000000 00:00 0
7f7be9dbd000-7f7be9dc0000 rw-p 00000000 00:00 0
7f7be9dc0000-7f7be9dc1000 r--p 00022000 08:06 1319387
/lib/x8
6_64-linux-gnu/ld-2.15.so
7f7be9dc1000-7f7be9dc3000 rw-p 00023000 08:06 1319387
/lib/x8
6_64-linux-gnu/ld-2.15.so
7ffffaac2000-7ffffaae3000 rw-p 00000000 00:00 0
[stack]
7ffffabff000-7ffffac00000 r-xp 00000000 00:00 0
[vdso]
ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0
[vsysca
ll]
Aborted (core dumped)
*Makefile:*
EXE = $(OUT)/cextract2
OUT = bin
CC = g++
CPPFLAGS := `llvm-config --cxxflags`
LDFLAGS := \
-lclangFrontend \
-lclangDriver \
-lclangSerialization \
-lclangParse \
-lclangSema \
-lclangAnalysis \
-lclangEdit \
-lclangAST \
-lclangLex \
-lclangBasic \
`llvm-config --libs` \
`llvm-config --ldflags`
objs := $(patsubst %.cpp,$(OUT)/%.o,$(wildcard *.cpp))
deps := $(objs:.o=.dep)
.PHONY: all
all: $(EXE)
-include $(deps)
$(OUT)/%.o: %.cpp
mkdir -p $(@D)
$(CC) $(CPPFLAGS) -c $< -o $@
$(CC) $(CPPFLAGS) -MM $< | sed -e '1,1 s|[^:]*:|$@:|' > $(@D)/$*.dep
$(EXE) : $(objs)
$(CC) $^ $(LDFLAGS) -o $@
*============*
I'm not sure if the steps to initialise clang has changed since I last used
it, or if its my build environment that might be problem.
Any help would be appreciated.
--
View this message in context: http://clang-developers.42468.n3.nabble.com/My-clang-program-crashes-during-initialisation-gives-glibc-detected-free-invalid-pointer-tp4028294.html
Sent from the Clang Developers mailing list archive at Nabble.com.
More information about the cfe-dev
mailing list