You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.
The text was updated successfully, but these errors were encountered:
The symbol 'a' does actually exist in both the executable and library:
joule% nm --print-file-name -D mytest lib/libbss.so | grep ' a$'
mytest:0000000000600c10 B a
lib/libbss.so:0000000000200810 B a
mytest includes space for the variable and uses a copy relocation; it seems that LLDB is incorrectly ending up with the (unused) one from the shared library instead of the one from the main executable.
Extended Description
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
In line 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) is false . However, the printout in line 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.
The text was updated successfully, but these errors were encountered: