Perhaps we should add a prettyprinter for cppgc::internal::MemberBase which
automatically calls that function?

Christian

On Tue, Oct 11, 2022 at 11:00 AM Dave Tapuska <[email protected]> wrote:

> Anton, can you add this to
> https://source.chromium.org/chromium/chromium/src/+/main:docs/linux/debugging.md
> ?
>
> On Tue, Oct 11, 2022 at 10:19 AM Anton Bikineev <[email protected]>
> wrote:
>
>> I'm now submitting a CL
>> <https://chromium-review.googlesource.com/c/v8/v8/+/3945108> that adds
>> some quick gdb helpers:
>>
>>   (gdb) source v8/tools/gdbinit
>>   # Print Member:
>>   (gdb) cpm *<member-name>*
>>   # Print Compressed Pointer:
>>   (gdb) cpcp *<compressed-32-bit-value>*
>>
>> It currently erases the pointee type, but this can be improved in the
>> future.
>>
>> On Tue, Oct 11, 2022 at 4:05 PM Anton Bikineev <[email protected]>
>> wrote:
>>
>>> Which should hopefully be callable from the debugger and not eliminated
>>>> by the linker?
>>>
>>> We can apply __attribute__((used,retain)) to make sure that the linker
>>> doesn't strip the functions with --gc-sections, same as did
>>> <https://chromium-review.googlesource.com/c/v8/v8/+/3932179> for V8
>>> helpers (a week ago :) ). I'll prepare a CL.
>>>
>>> On Mon, Oct 10, 2022 at 8:45 PM Daniel Cheng <[email protected]>
>>> wrote:
>>>
>>>> For now, I guess it should be sufficient to add something
>>>> to v8/include/cppgc/internal/member-storage.h like
>>>>
>>>> #ifndef NDEBUG  // DCHECK_IS_ON() would be nicer, but not sure what v8
>>>> uses
>>>> extern "C" void* DecompressPointerForDebugger(uint32_t value) {
>>>>   return cppgc::internal::CompressedPointer::Decompress(value);
>>>> }
>>>> #endif
>>>>
>>>> Which should hopefully be callable from the debugger and not eliminated
>>>> by the linker?
>>>>
>>>> Daniel
>>>>
>>>> On Mon, 10 Oct 2022 at 11:32, Stefan Zager <[email protected]> wrote:
>>>>
>>>>> I ran into this today, and it's pretty frustrating:
>>>>>
>>>>> (rr) p inner_node_
>>>>>
>>>>> $11 = {
>>>>>
>>>>>   <cppgc::internal::MemberBase> = {
>>>>>
>>>>>     raw_ = {
>>>>>
>>>>>       static kCompressedSentinel = 1,
>>>>>
>>>>>       value_ = 2148082696 <(214)%20808-2696>
>>>>>
>>>>>     }
>>>>>
>>>>>   },
>>>>>
>>>>>   <cppgc::internal::DisabledCheckingPolicy> = {<No data fields>}, <No
>>>>> data fields>}
>>>>> (rr) p inner_node_.Load()
>>>>>
>>>>> Couldn't find method blink::Member<blink::Node>::Load
>>>>>
>>>>> (rr) p inner_node_.raw_.Load()
>>>>>
>>>>> Cannot evaluate function -- may be inlined
>>>>>
>>>>> (rr) p
>>>>> cppgc::internal::CompressedPointer::Decompress(inner_node_.raw_.value_)
>>>>>
>>>>> Cannot evaluate function -- may be inlined
>>>>>
>>>>> (rr)
>>>>>
>>>>> I found that I can avoid the issue with this in args.gn:
>>>>>
>>>>> cppgc_enable_caged_heap = false
>>>>> cppgc_enable_pointer_compression = false
>>>>>
>>>>> ... but I would prefer a better solution.
>>>>>
>>>>> On Mon, Oct 10, 2022 at 10:22 AM Ian Kilpatrick <
>>>>> [email protected]> wrote:
>>>>>
>>>>>> Is there a bug to follow regarding the debuggability of the pointers?
>>>>>>
>>>>>> Ian
>>>>>>
>>>>>> On Thu, Sep 22, 2022 at 11:10 AM Anton Bikineev <
>>>>>> [email protected]> wrote:
>>>>>>
>>>>>>> There is "cppgc::internal::CompressedPointer::Decompress(void*)". I
>>>>>>> would, however, hide it behind a simpler name in .gdbinit.
>>>>>>>
>>>>>>> On Thu, Sep 22, 2022 at 5:51 PM Daniel Cheng <[email protected]>
>>>>>>> wrote:
>>>>>>>
>>>>>>>> Is there a callable C++ function that can turn a compressed pointer
>>>>>>>> into the actual pointer value?
>>>>>>>>
>>>>>>>> Daniel
>>>>>>>>
>>>>>>>> On Thu, 22 Sept 2022 at 08:43, Anton Bikineev <
>>>>>>>> [email protected]> wrote:
>>>>>>>>
>>>>>>>>> We have plans to provide more debugging tooling for Oilpan. I
>>>>>>>>> haven't had a need to examine compressed pointers myself, however I 
>>>>>>>>> see
>>>>>>>>> that some simple gdb/windbg function that'd follow pointers would be 
>>>>>>>>> useful.
>>>>>>>>>
>>>>>>>>> On Thu, Sep 22, 2022 at 1:14 AM Kentaro Hara <[email protected]>
>>>>>>>>> wrote:
>>>>>>>>>
>>>>>>>>>> +Michael Lippautz <[email protected]>
>>>>>>>>>>
>>>>>>>>>> 2022年9月22日(木) 4:01 'Daniel Libby' via blink-dev <
>>>>>>>>>> [email protected]>:
>>>>>>>>>>
>>>>>>>>>>> https://crrev.com/c/3835682 enabled pointer compression for
>>>>>>>>>>> Blink Member<> pointers. How are folks handling these while
>>>>>>>>>>> debugging (either live or crash dumps)? Is there some tooling 
>>>>>>>>>>> available
>>>>>>>>>>> that will look up and apply the cage base?
>>>>>>>>>>>
>>>>>>>>>>> I didn't see anything mentioned in
>>>>>>>>>>> https://docs.google.com/document/d/1neGN8Jq-1JLrWK3cvwRIfrSjLgE0Srjv-uq7Ze38Iao/edit#
>>>>>>>>>>> but maybe there are better known tools/techniques from v8 (which 
>>>>>>>>>>> IIUC has
>>>>>>>>>>> had compressed pointers for some time now).
>>>>>>>>>>>
>>>>>>>>>>> --
>>>>>>>>>>> You received this message because you are subscribed to the
>>>>>>>>>>> Google Groups "blink-dev" group.
>>>>>>>>>>> To unsubscribe from this group and stop receiving emails from
>>>>>>>>>>> it, send an email to [email protected].
>>>>>>>>>>> To view this discussion on the web visit
>>>>>>>>>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/4b3e5bbb-134a-4483-9a1e-8e33fbc6f38en%40chromium.org
>>>>>>>>>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/4b3e5bbb-134a-4483-9a1e-8e33fbc6f38en%40chromium.org?utm_medium=email&utm_source=footer>
>>>>>>>>>>> .
>>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>> You received this message because you are subscribed to the
>>>>>>>>>> Google Groups "blink-dev" group.
>>>>>>>>>> To unsubscribe from this group and stop receiving emails from it,
>>>>>>>>>> send an email to [email protected].
>>>>>>>>>> To view this discussion on the web visit
>>>>>>>>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CABg10jxSdx3JzWvTC2j7RUEcw01P9gTRhT%3DnftwehY3br4qNWA%40mail.gmail.com
>>>>>>>>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CABg10jxSdx3JzWvTC2j7RUEcw01P9gTRhT%3DnftwehY3br4qNWA%40mail.gmail.com?utm_medium=email&utm_source=footer>
>>>>>>>>>> .
>>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> You received this message because you are subscribed to the Google
>>>>>>>>> Groups "blink-dev" group.
>>>>>>>>> To unsubscribe from this group and stop receiving emails from it,
>>>>>>>>> send an email to [email protected].
>>>>>>>>> To view this discussion on the web visit
>>>>>>>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CABH6udYH6VGy8Ooz6ZLZWpWR_LjjQfu1xh-AMBvWoyAnArojbA%40mail.gmail.com
>>>>>>>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CABH6udYH6VGy8Ooz6ZLZWpWR_LjjQfu1xh-AMBvWoyAnArojbA%40mail.gmail.com?utm_medium=email&utm_source=footer>
>>>>>>>>> .
>>>>>>>>>
>>>>>>>> --
>>>>>>> You received this message because you are subscribed to the Google
>>>>>>> Groups "blink-dev" group.
>>>>>>> To unsubscribe from this group and stop receiving emails from it,
>>>>>>> send an email to [email protected].
>>>>>>> To view this discussion on the web visit
>>>>>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CABH6udZS_4iw6Vhb%3Dtf0J9qgV%3DbwbcWAu%2B--Xt9dYrDpqDecXw%40mail.gmail.com
>>>>>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CABH6udZS_4iw6Vhb%3Dtf0J9qgV%3DbwbcWAu%2B--Xt9dYrDpqDecXw%40mail.gmail.com?utm_medium=email&utm_source=footer>
>>>>>>> .
>>>>>>>
>>>>>> --
>>>>>> You received this message because you are subscribed to the Google
>>>>>> Groups "blink-dev" group.
>>>>>> To unsubscribe from this group and stop receiving emails from it,
>>>>>> send an email to [email protected].
>>>>>> To view this discussion on the web visit
>>>>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAJL3UpQ%2BiPOAMX6ONDxRm9UG0zFRkScw1%3DdALFGdKJOUiAUpEw%40mail.gmail.com
>>>>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAJL3UpQ%2BiPOAMX6ONDxRm9UG0zFRkScw1%3DdALFGdKJOUiAUpEw%40mail.gmail.com?utm_medium=email&utm_source=footer>
>>>>>> .
>>>>>>
>>>>> --
>> You received this message because you are subscribed to the Google Groups
>> "blink-dev" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected].
>> To view this discussion on the web visit
>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CABH6udZ7rMMqmsZ98RbS21yG_DBXXtnoOVYnO4oV%3Dno3tFvNug%40mail.gmail.com
>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CABH6udZ7rMMqmsZ98RbS21yG_DBXXtnoOVYnO4oV%3Dno3tFvNug%40mail.gmail.com?utm_medium=email&utm_source=footer>
>> .
>>
> --
> You received this message because you are subscribed to the Google Groups
> "blink-dev" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAHgVhZWN15bg8nzz8mygH%3D99ZHeEu5gGbyQc_xKAO%2BuGJ7WhcQ%40mail.gmail.com
> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAHgVhZWN15bg8nzz8mygH%3D99ZHeEu5gGbyQc_xKAO%2BuGJ7WhcQ%40mail.gmail.com?utm_medium=email&utm_source=footer>
> .
>

-- 
You received this message because you are subscribed to the Google Groups 
"blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAPTJ0XFLYN55Pin9jiqhtJ-5heRcO6tDnvV60ZFT1JRVCsQxqw%40mail.gmail.com.

Reply via email to