[Bug 18734] New: symbol lookup of bss variable in shared library does not match assembly

Bug ID 18734
Summary symbol lookup of bss variable in shared library does not match assembly
Product lldb
Version 3.3
Hardware PC
OS FreeBSD
Status NEW
Severity normal
Priority P
Component All Bugs
Assignee lldb-dev@cs.uiuc.edu
Reporter harry.weppner@gmx.net
Classification Unclassified

Hi,

I stumbled across a situation where the symbol lookup seems inconsistent.

The gist of the issue is described at
[https://gist.github.com/HarryWeppner/946cac154d769cf6936c](https://gist.github.com/HarryWeppner/946cac154d769cf6936c)

In line [https://gist.github.com/HarryWeppner/946cac154d769cf6936c#file-lldb-L14](https://gist.github.com/HarryWeppner/946cac154d769cf6936c#file-lldb-L14)
lldb prints that the address of variable 'a' is 0x800a1b820 within libbss.so.1
(the shared library created from mylib.c).

That value shows as 0 even after being set to 1, i.e. the expression a == i
([https://gist.github.com/HarryWeppner/946cac154d769cf6936c#file-lldb-L24](https://gist.github.com/HarryWeppner/946cac154d769cf6936c#file-lldb-L24)) is
false . However, the printout in line
[https://gist.github.com/HarryWeppner/946cac154d769cf6936c#file-lldb-L28](https://gist.github.com/HarryWeppner/946cac154d769cf6936c#file-lldb-L28) is ok
again and shows 'a' with a value of 1.

The fact that lldb *and* gdb show this behavior may indicate that the root
cause is actually a backend bug but I've filed this bug here since the symptom
occurs in lldb.

Thanks & cheerio, Harry.