[llvm-dev] Debug Info is not generated for extern variables .

via llvm-dev llvm-dev at lists.llvm.org
Fri May 17 10:50:35 PDT 2019


I think emitting "testExt" as an external declaration (what gcc does) doesn't do much for the debugger; being a declaration, it has no location, and so you can't do things like examine its value, unless you find the symbol in the defining CU first.

I don't see a real "compatibility with gcc" argument here.  Is there some behavior of some consumer that is affected by this?
--paulr

From: David Blaikie [mailto:dblaikie at gmail.com]
Sent: Friday, May 17, 2019 1:14 PM
To: Umesh Kalappa; Robinson, Paul; Adrian Prantl; Jonas Devlieghere
Cc: LLVM Developers Mailing List; cfe-dev at cs.uiuc.edu Developers
Subject: Re: [llvm-dev] Debug Info is not generated for extern variables .

Any idea why this is important compared to function declarations that I don't think any compiler emits (declarations of called but not defined non-member functions)?

I imagine in the function case, it's assumed that the function is defined elsewhere and the debug info for that definition will be available.

Why not the same with variables?

(admittedly, when we employ the "debug info is in another file" assumption, that should be done under -fno-standalone-debug - but I'm not sure how far we should take that assumption. Should we have debug info for declarations of functions?)

There's currently at least some code that supports emitting function declarations (for member functions) but not for variables (static member variables are 'members' rather than 'variables')

On Fri, May 17, 2019 at 9:21 AM Umesh Kalappa via llvm-dev <llvm-dev at lists.llvm.org<mailto:llvm-dev at lists.llvm.org>> wrote:
Hi All,

for the below case :
$cat test.c
extern void sharedLibTestLibRtn (int arg);
extern int testExt;
int main (void)
    {
    testExt++;
    sharedLibTestLibRtn (5);

    return 0;
    }
we don't see the debug-info for "testExt" i.e no DW_AT_type  entry for
extern symbol ,where gcc has the same .

we are  fixing  the same in clang as compatibility with gcc .

before we start our analysis on DIBuilder in clang ,any inputs here
will be appreciated .

Thank you
~Umesh
_______________________________________________
LLVM Developers mailing list
llvm-dev at lists.llvm.org<mailto:llvm-dev at lists.llvm.org>
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20190517/428199b6/attachment.html>


More information about the llvm-dev mailing list