[lldb-dev] Various strange errors while debugging PostgreSQL
Hello Here is what I do. In one terminal I connect to PostgreSQL using psql command. In another terminal I determine pid of a new PostgreSQL process (backend process that handles a new connection) and run: ``` lldb-3.7.1 -p (pid) ``` Then: ``` b heap_open c ``` In first terminal: ``` create temporary table tt1(x int); ``` In second terminal: ``` 1290 { 1291 Relationr; 1292 -> 1293 r = relation_open(relationId, lockmode); 1294 1295 if (r->rd_rel->relkind == RELKIND_INDEX) 1296 ereport(ERROR, (lldb) p r (Relation) $0 = 0x0002018a70c8 (lldb) p r->rd_rel error: Couldn't apply expression side effects : Couldn't dematerialize a result variable: couldn't read its memory ``` This is a first issue. The second issue is: ``` (lldb) process save-core /tmp/1.core error: Failed to save core file for process: no ObjectFile plugins were able to save a core for this process ``` LLDB was compiled manually from RELEASE_371/final tag using clang 3.6: ``` cmake ../llvm -G Ninja -DLLDB_DISABLE_CURSES:BOOL=TRUE \ -DCMAKE_C_COMPILER=/usr/bin/clang-3.6 \ -DCMAKE_CXX_COMPILER=/usr/bin/clang++-3.6 \ -DCMAKE_BUILD_TYPE=Release ninja -j2 sudo ninja install ``` It's Ubuntu Linux 14.04 LTS: ``` $ uname -a Linux pgsql-dev-ubuntu 3.13.0-83-generic #127-Ubuntu SMP Fri Mar 11 00:25:37 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux ``` Same issues with lldb-3.6 installed using apt-get. `process save-core` doesn't work in lldb-3.8 compiled using ports on FreeBSD 10.2 as well. Unfortunately I can't tell if first bug reproduces on FreeBSD because of another bug I reported previously: https://llvm.org/bugs/show_bug.cgi?id=26924#c3 Anyway are these some sort of well-know issues that could be bypassed somehow or brand new bugs? I can also provide any other debug information you might need. -- Best regards, Aleksander Alekseev http://eax.me/ ___ lldb-dev mailing list lldb-dev@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev
Re: [lldb-dev] Various strange errors while debugging PostgreSQL
> (lldb) p r->rd_rel > error: Couldn't apply expression side effects : Couldn't dematerialize >a result variable: couldn't read its memory OK, this issue is fixed in 3.8.0. Two others are not. -- Best regards, Aleksander Alekseev http://eax.me/ ___ lldb-dev mailing list lldb-dev@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev
Re: [lldb-dev] Various strange errors while debugging PostgreSQL
> So I am guessing these are the only architectures that are supported. > I am guessing you might be on an i386 system? No I'm afraid it's x86_64. File RegisterContextPOSIXCore_x86_64.cpp is present in source tree I used to build lldb. This bug is very easy to reproduce. 0. You need Ubuntu 14.04 LTS x64 with latest updates 1. Create a new LXC container to exclude any possible side effects from other installed applications 2. Build LLDB using this script: http://paste.ubuntu.com/15488691/ 3. Run `sudo ninja install` 4. Create t.c: ``` #include int main() { printf("Hello!\n"); return 0; } ``` 5. Run ` /usr/local/bin/clang-3.8 t.c -o t ` (or ... -g - it doesn't matter) 6. Then: $ ./t Hello! $ lldb ./t (lldb) target create "./t" Current executable set to './t' (x86_64). (lldb) b main Breakpoint 1: where = t`main, address = 0x00400530 (lldb) r Process 24974 launching Process 24974 launched: './t' (x86_64) Process 24974 stopped * thread #1: tid = 24974, 0x00400530 t`main, name = 't', stop reason = breakpoint 1.1 frame #0: 0x00400530 t`main -> 0x400530 : pushq %rbp 0x400531 : movq %rsp, %rbp 0x400534 : subq $0x10, %rsp 0x400538 : movabsq $0x4005e4, %rdi (lldb) process save-core /tmp/1.core error: Failed to save core file for process: no ObjectFile plugins were able to save a core for this process (lldb) ^D -- Best regards, Aleksander Alekseev http://eax.me/ ___ lldb-dev mailing list lldb-dev@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev