[lldb-dev] Various strange errors while debugging PostgreSQL

2016-03-24 Thread Aleksander Alekseev via lldb-dev
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

2016-03-24 Thread Aleksander Alekseev via lldb-dev
> (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

2016-03-24 Thread Aleksander Alekseev via lldb-dev
> 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