Hi folks,I've been making progress on adding line-numbers into the stack traces in linux.proof-of-concept CL: https://chromium-review.googlesource.com/c/chromium/src/+/2031694I've gotten it mostly working, but it's a bit slow. I wanted to explore using the DWARF .debug_aranges table to speed up processing of the line numbers, however, it seems that LLVM does NOT output this by default.Does anyone know much about this table? In particular, I had 2 questions:(1) Would people object if I added -gdwarf-aranges into all the cflags? We likely need to measure the build artifact size implication...
--(2) Does anyone know if .debug_aranges is guaranteed to be sorted?The DWARF-4 spec does NOT seem to guarantee the range is sorted (whyyyyyy?) but maybe we can know that llvm will enforce this? It'd allow me to binary search the table.-Albert
--
Chromium Developers mailing list: chromi...@chromium.org
View archives, change email options, or unsubscribe:
http://groups.google.com/a/chromium.org/group/chromium-dev
---
You received this message because you are subscribed to the Google Groups "Chromium-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to chromium-dev...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/CALcbsXDMH3%3D8QV7fuiBYLEYqV4xoGbinH9RL-hVu01GRYjWvbg%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/CALNjmMozbq%3DZZXZuL3w1nyd1aopf92RdRTT83U2vD_GV0ZLfig%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/CAEYHnr0x_UfHqHrq8R2sNc4nXGD_ii%3DQ8ZbYkznDfQQBgAm2rw%40mail.gmail.com.
To unsubscribe from this group and stop receiving emails from it, send an email to chromium-dev+unsubscribe@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/CALcbsXDMH3%3D8QV7fuiBYLEYqV4xoGbinH9RL-hVu01GRYjWvbg%40mail.gmail.com.
--
--
Chromium Developers mailing list: chromi...@chromium.org
View archives, change email options, or unsubscribe:
http://groups.google.com/a/chromium.org/group/chromium-dev
---
You received this message because you are subscribed to the Google Groups "Chromium-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to chromium-dev+unsubscribe@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/CALNjmMozbq%3DZZXZuL3w1nyd1aopf92RdRTT83U2vD_GV0ZLfig%40mail.gmail.com.
--
--
Chromium Developers mailing list: chromi...@chromium.org
View archives, change email options, or unsubscribe:
http://groups.google.com/a/chromium.org/group/chromium-dev
---
You received this message because you are subscribed to the Google Groups "Chromium-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to chromium-dev+unsubscribe@chromium.org.
Even if the ranges were sorted, I'm not sure a binary search would work. .debug_aranges is segmented by compilation unit into sets of ranges. Sets are variable length and start with a header that identifies the compilation unit, which I think won't allow for random access. You might have to build your own lookup data structure.
SUMMARY: ThreadSanitizer: data race tools_sanity_unittest.cc in base::(anonymous namespace)::TOOLS_SANITY_TEST_CONCURRENT_THREAD::ThreadMain()
instead ofSUMMARY: ThreadSanitizer: data race base/tools_sanity_unittest.cc:249:13 in base::(anonymous namespace)::TOOLS_SANITY_TEST_CONCURRENT_THREAD::ThreadMain()
Cheers,Philip
To unsubscribe from this group and stop receiving emails from it, send an email to chromium-dev...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/CALcbsXDMH3%3D8QV7fuiBYLEYqV4xoGbinH9RL-hVu01GRYjWvbg%40mail.gmail.com.
--
--
Chromium Developers mailing list: chromi...@chromium.org
View archives, change email options, or unsubscribe:
http://groups.google.com/a/chromium.org/group/chromium-dev
---
You received this message because you are subscribed to the Google Groups "Chromium-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to chromium-dev...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/CALNjmMozbq%3DZZXZuL3w1nyd1aopf92RdRTT83U2vD_GV0ZLfig%40mail.gmail.com.
--
--
Chromium Developers mailing list: chromi...@chromium.org
View archives, change email options, or unsubscribe:
http://groups.google.com/a/chromium.org/group/chromium-dev
---
You received this message because you are subscribed to the Google Groups "Chromium-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to chromium-dev...@chromium.org.
On Tue, Jul 13, 2021 at 3:23 AM Philip Pfaffe <pfa...@chromium.org> wrote:
Even if the ranges were sorted, I'm not sure a binary search would work. .debug_aranges is segmented by compilation unit into sets of ranges. Sets are variable length and start with a header that identifies the compilation unit, which I think won't allow for random access. You might have to build your own lookup data structure.True, but I was hoping to at least binary search within each set of ranges. After reading the range header, you know the length of the size and can binary search from there. Also, I noticed looking at the dwarfdump on libbase.so that, for some reason, clang is generating a bunch of small ranges starting at address 0 within one set...which doesn't seem super useful? If searching, it allows you to have multiple matches since the ranges overlap. Not sure what to make of that.