--
To unsubscribe from this group and stop receiving emails from it, send an email to clang+un...@chromium.org.
It sounds like we should:1. move the bots to symbol_level=0 consistently on all platforms2. pass /debug to the linker at symbol_level=0 on Windows in gnThis will make all the levels behave consistently across platforms, and get function-names-only on the CQ.
Now that we have LLD, I don't think we need to worry about the extra time cost of writing a PDB anymore. But, someone should measure. You can use win_linker_timing=true to see how much time PDB writing takes.I had been assuming that line numbers on CQ were really helpful to developers, but it sounds like they are not worth the latency increase and infra costs.
On Tue, Nov 26, 2019 at 5:46 PM Reid Kleckner <r...@google.com> wrote:It sounds like we should:1. move the bots to symbol_level=0 consistently on all platforms2. pass /debug to the linker at symbol_level=0 on Windows in gnThis will make all the levels behave consistently across platforms, and get function-names-only on the CQ.Parroting this back, that means tomorrow I could add a GN change to put /debug into the link-line for windows while simultaneously setting symbol_level=0 and we'd have what we want?
On Wed, Nov 27, 2019 at 1:12 AM Albert J. Wong (王重傑) <ajw...@chromium.org> wrote:On Tue, Nov 26, 2019 at 5:46 PM Reid Kleckner <r...@google.com> wrote:It sounds like we should:1. move the bots to symbol_level=0 consistently on all platforms2. pass /debug to the linker at symbol_level=0 on Windows in gnThis will make all the levels behave consistently across platforms, and get function-names-only on the CQ.Parroting this back, that means tomorrow I could add a GN change to put /debug into the link-line for windows while simultaneously setting symbol_level=0 and we'd have what we want?Yes. (/debug is alread on the link line for symbol_levels > 0; we could just add it unconditionally.)But if that's what we want, I'm confused what symbol_level=1 is supposed to be there for.Historically, the lay of land was:a) symbol_level=2: Full symbols, and slow-ish compiles and links. For use by devs who like interactive debuggers.b) symbol_level=1: On non-Win, enough symbols to get stacks with line numbers, and on Win enough to get stacks with function names without line numbers (and after rnk's change you link to, Win behaved like non-Win). The non-Win (and now Win) behavior still adds some amount of debug info to compiles, so compiles and links slow down a bit, but you get good stacks. The old Win behavior was that compiles didn't emit debug info, but the link step did (but since no type debug info needed linking, that was also fast). This was for use on bots, and devs regularly complained to us when we broke it, so there's some evidence that having working stacks (with line numbers) is considered useful by devs. Hence rnk's change -- the decision at the time was that this is a good machine time / dev time tradeoff.c) symbol_level=0: No debug info at all. For local use by devs who don't like using interactive debuggers, very fast links. (But since bots use symbol_level=1, no shared goma cache with bots, only with other devs).Using symbol_level=0 on Linux is a recent change, yes? Do you have more details on that?