This seems like a bug.

One thing that could interfere here is the stack frame cache. Stack frames
collected via the API are cached. I encountered another bug in the stack
frame caching code while working on some other unrelated stack trace part,
but I haven't gotten around to investigate and fix it.

On Fri, May 31, 2019 at 11:50 AM Dominik Gruber <
dominik.gru...@dynatrace.com> wrote:

> I hope I have not been too unconcise in my description of the issue.
>
> Just wanted to figure if the underlying API calls suffice any use cases of
> getting the typename:
>
> In the Factory::NewStackFrameInfo-ctor I use the already in-place function
> "it.Frame()->GetTypeName()" in order to retrieve the typename.
> Initial testing with the updated v8 and a custom built Node had shown this
> change did work fine (did not test changing the "this" though).
> Unit testing has revealed that if I use "call" on a function object and
> set another "this" no typename is delivered at all (in contrast to using
> the Callsites-API).
>
> Is "it.Frame()->GetTypeName()" supposed to deliver the typename also in
> the use-case of changing the "this"? If the answer is yes it looks like a
> bug and I am more than willing to track it down.
> If the answer is no it looks like I am missing something in my code. Any
> pointers welcome.
>
> It just does not feel right as "it.Frame()->GetTypeName()" delivers the
> correct typename if I keep the "this" unchanged.
>
> Thanks,
> Dominik
>
>
> On Wednesday, May 22, 2019 at 4:40:21 PM UTC+2, Dominik Gruber wrote:
>>
>> I did add a test and stumbled upon the following issue:
>>
>> // following test code to test the GetTypeName feature:
>> function bar() {
>> };
>>
>> bar.prototype.x = function foo() {
>>     AnalyzeStackInNativeCode();
>> }
>> var baz = new bar();
>> baz.x(); // returned typename = "bar" as expected
>> baz.x.call("aString"); // typename is "" but I had expected it to be
>> "String"
>>
>> I tracked the missing code for getting the typename down to "factory.cc"
>> and the "NewStackFrameInfo"-ctor where I reused the already exisiting
>> "GetTypeName" function from the FrameArrayIterator. The same API call is
>> also used in CallSitePrototypeGetTypeName so I assumed that would work here
>> as well. Was my assumption false? Or is that test code not meant to run in
>> this test context?
>>
>> Any help pushing me in the right direction is highly appreciated.
>>
>> Thanks,
>> Dominik
>>
>> On Wednesday, May 22, 2019 at 10:40:22 AM UTC+2, Dominik Gruber wrote:
>>>
>>> Indeed, good catch. Did a rebuild and tests run now. Thanks!
>>>
>>> On Wednesday, May 22, 2019 at 10:34:00 AM UTC+2, Jakob Gruber wrote:
>>>>
>>>> Shot in the dark: are you building with `v8_static_library = true`?
>>>> cctests unfortunately don't work in that config
>>>> <https://bugs.chromium.org/p/chromium/issues/detail?id=957029#c8>.
>>>>
>>>> On Wed, May 22, 2019 at 10:22 AM Dominik Gruber <
>>>> domini...@dynatrace.com> wrote:
>>>>
>>>>> Hi Simon,
>>>>>
>>>>> can you give me an example on how to run a test procedure from
>>>>> "test-api-stack-traces.cc"? Running "tools/run-tests.py
>>>>> --outdir=out/x64.release cctest" does not result in any test runs. I guess
>>>>> I have to define a target, but I am struggling to find the correct
>>>>> parameters.
>>>>>
>>>>> Thanks,
>>>>> Dominik
>>>>>
>>>>> On Monday, May 20, 2019 at 1:40:40 PM UTC+2, Simon Zünd wrote:
>>>>>>
>>>>>> Unfortunately we don't accept patches from Github PRs and we don't
>>>>>> review code on Github. Please follow the instructions at
>>>>>> https://chromium.googlesource.com/chromium/src/+/master/docs/contributing.md#Uploading-a-change-for-review.
>>>>>> This way, the CL can run against our Try bots and the CL can properly be
>>>>>> reviewed in Gerrit.
>>>>>>
>>>>>> On Mon, May 20, 2019 at 1:25 PM Dominik Gruber <
>>>>>> domini...@dynatrace.com> wrote:
>>>>>>
>>>>>>> Hi Simon,
>>>>>>>
>>>>>>> Dynatrace has already signed the CLA.
>>>>>>> I am currently porting the changeset to our v8 fork. Is it
>>>>>>> sufficient if I provide the link to the git repo with the changelist for
>>>>>>> reviewing?
>>>>>>>
>>>>>>> Thanks,
>>>>>>> Dominik
>>>>>>>
>>>>>>>
>>>>>>> On Thursday, May 16, 2019 at 2:10:09 PM UTC+2, Simon Zünd wrote:
>>>>>>>>
>>>>>>>> Hi Dominik,
>>>>>>>>
>>>>>>>> for general V8 contribution guidelines, please follow
>>>>>>>> https://v8.dev/docs/contribute. There is also currently some work
>>>>>>>> going regarding stack traces. Feel free to use the same tracking bug (
>>>>>>>> https://crbug.com/v8/8742) for your CLs. You can send your CLs to
>>>>>>>> me for review and I will add additional reviewers as necessary.
>>>>>>>>
>>>>>>>> AFAIK Node 12 will stay at V8 API compatibility of 7.5 (the current
>>>>>>>> V8 version being worked on is 7.6). Meaning your change won't make it 
>>>>>>>> into
>>>>>>>> Node 12. Note that the contribution process for Node itself differs 
>>>>>>>> from V8.
>>>>>>>>
>>>>>>>> Cheers,
>>>>>>>> Simon
>>>>>>>>
>>>>>>>> *From: *Jakob Gruber <jgr...@chromium.org>
>>>>>>>> *Date: *Thu, May 16, 2019 at 2:01 PM
>>>>>>>> *To: * <v8-...@googlegroups.com>, Simon Zünd, Yang Guo
>>>>>>>>
>>>>>>>> +Simon Zünd +Yang Guo
>>>>>>>>>
>>>>>>>>> *From: *Dominik Gruber <domini...@dynatrace.com>
>>>>>>>>> *Date: *Thu, May 16, 2019 at 1:58 PM
>>>>>>>>> *To: *v8-dev
>>>>>>>>>
>>>>>>>>> Dear v8 community,
>>>>>>>>>>
>>>>>>>>>> Background: The native API is lacking the functionality
>>>>>>>>>> "GetTypeName" on StackFrame objects contrary to Callsites where this
>>>>>>>>>> feature is available to the managed API.
>>>>>>>>>>
>>>>>>>>>> We have implemented and tested this feature with Nodejs and would
>>>>>>>>>> like to contribute those changes to the v8 source and get that 
>>>>>>>>>> feature into
>>>>>>>>>> Nodejs as soon as possible.
>>>>>>>>>>
>>>>>>>>>> Can someone guide me through the contribution process regarding
>>>>>>>>>> issue creation, code review, merge to Nodejs?
>>>>>>>>>>
>>>>>>>>>> Thanks,
>>>>>>>>>> Dominik
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>> --
>>>>>>>>>> v8-dev mailing list
>>>>>>>>>> v8-...@googlegroups.com
>>>>>>>>>> http://groups.google.com/group/v8-dev
>>>>>>>>>> ---
>>>>>>>>>> You received this message because you are subscribed to the
>>>>>>>>>> Google Groups "v8-dev" group.
>>>>>>>>>> To unsubscribe from this group and stop receiving emails from it,
>>>>>>>>>> send an email to v8-...@googlegroups.com.
>>>>>>>>>> To view this discussion on the web visit
>>>>>>>>>> https://groups.google.com/d/msgid/v8-dev/7b6bdc89-ec2f-4594-8c4f-7b7af4b426d2%40googlegroups.com
>>>>>>>>>> <https://groups.google.com/d/msgid/v8-dev/7b6bdc89-ec2f-4594-8c4f-7b7af4b426d2%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>>>>>>>> .
>>>>>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>>>>>
>>>>>>>>> --
>>>>>>> --
>>>>>>> v8-dev mailing list
>>>>>>> v8-...@googlegroups.com
>>>>>>> http://groups.google.com/group/v8-dev
>>>>>>> ---
>>>>>>> You received this message because you are subscribed to the Google
>>>>>>> Groups "v8-dev" group.
>>>>>>> To unsubscribe from this group and stop receiving emails from it,
>>>>>>> send an email to v8-...@googlegroups.com.
>>>>>>> To view this discussion on the web visit
>>>>>>> https://groups.google.com/d/msgid/v8-dev/2eecbe69-7b7d-42f5-8437-f4fe7a2b1158%40googlegroups.com
>>>>>>> <https://groups.google.com/d/msgid/v8-dev/2eecbe69-7b7d-42f5-8437-f4fe7a2b1158%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>>>>> .
>>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>>
>>>>>> --
>>>>> --
>>>>> v8-dev mailing list
>>>>> v8-...@googlegroups.com
>>>>> http://groups.google.com/group/v8-dev
>>>>> ---
>>>>> You received this message because you are subscribed to the Google
>>>>> Groups "v8-dev" group.
>>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>>> an email to v8-...@googlegroups.com.
>>>>> To view this discussion on the web visit
>>>>> https://groups.google.com/d/msgid/v8-dev/363c0022-4d1d-4aee-ae36-6a7589b7fb1e%40googlegroups.com
>>>>> <https://groups.google.com/d/msgid/v8-dev/363c0022-4d1d-4aee-ae36-6a7589b7fb1e%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>>> .
>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>
>>>> --
> --
> v8-dev mailing list
> v8-dev@googlegroups.com
> http://groups.google.com/group/v8-dev
> ---
> You received this message because you are subscribed to the Google Groups
> "v8-dev" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to v8-dev+unsubscr...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/v8-dev/1bf1b206-45d6-4bf2-82ed-ae64b988acc6%40googlegroups.com
> <https://groups.google.com/d/msgid/v8-dev/1bf1b206-45d6-4bf2-82ed-ae64b988acc6%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
> For more options, visit https://groups.google.com/d/optout.
>

-- 
-- 
v8-dev mailing list
v8-dev@googlegroups.com
http://groups.google.com/group/v8-dev
--- 
You received this message because you are subscribed to the Google Groups 
"v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to v8-dev+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/v8-dev/CACswSC1Mgh2%2BunL4HZLW3NCHNo0e0kZst9oHxfo5f3E_UsT8Lg%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to