Hello Jakob:
Can you provide some additional advice on collecting the 
'--trace-block-coverage' output?

If I run chrome directly from the command-line and then enable coverage, 
then I can see the trace output in the terminal. (I'm on Linux.)

However, when chrome is launched via wdio (webdriver.io), then the trace 
output is not accessible.

I tried adding `--log-file` to the options for launching chrome from wdio 
(something equivalent to the following: `chromium 
--js-flags="--trace-block-coverage" --enable-logging 
--log-file="./v8-coverage.log"`) but the `--log-file` option doesn't 
capture the trace output.

I inquired over on the webdriver.io forum ... but there were no immediate 
solutions. They suggested that perhaps I can implement this feature 
(https://github.com/giggio/node-chromedriver/issues/313) to have 
chromedriver capture chrome's output. However our project doesn't use 
chromedriver (as far as I can tell ... chromedriver is not in the install 
packages and it's not installed globally).

Upon looking through closed chromium bugs to see if there was an existing 
solution, I saw mention of the `chrome://tracing` feature, and I can see 
that `v8` is listed in the `Record Categories`. However on first pass, it 
doesn't seem this interface is capturing the `trace-block-coverage`.

Any tips on dumping the trace data to a file, so I can include it with a 
bug report?

Thanks.
On Wednesday, September 21, 2022 at 11:28:12 AM UTC-4 Cecil King wrote:

> Thanks Jakob:
> I'll give this a try and add any additional information I find to the bug 
> report.
>
> On Wednesday, September 21, 2022 at 2:27:24 AM UTC-4 [email protected] 
> wrote:
>
>> Hi Cecil,
>>
>> it's hard to say much without a repro. I'd start by trying the V8 flag 
>> --trace-block-coverage (
>> https://source.chromium.org/chromium/chromium/src/+/main:v8/src/debug/debug-coverage.cc;l=481;drc=5f2ed43ac6add2683505e130be73826cbb3dddfd).
>>  
>> If that doesn't help, the next step would be to debug more around 
>> Coverage::Collect. 
>>
>> Also, I'd suggest to file a report at crbug.com/v8/new to continue the 
>> conversation since bug reports are easier to track than mails :)
>>
>> On Tue, Sep 20, 2022 at 9:39 PM 'Cecil King' via v8-dev <
>> [email protected]> wrote:
>>
>>> Hello.
>>>
>>> My first post here. I'm looking for advice on debugging an issue with 
>>> the v8 code coverage.
>>>
>>> I'm using startPreciseCoverage / takePreciseCoverage to extract code 
>>> coverage data from Chrome (i.e. v8).
>>>
>>> My issue: data from uncovered functions are missing from the dumped data.
>>> For example, assume the handleSubmit function in authors.js is not 
>>> called. I expect to see this:
>>> {
>>>     "scriptId": "16",
>>>     "url": 
>>> "file:///home/<user>/v8-chrome-coverage-wdio-sync/public/js/authors.js",
>>>     "functions": [
>>>         {
>>>             "functionName": "",
>>>             "ranges": [{ "startOffset": 0, "endOffset": 828, "count": 1 
>>> }],
>>>             "isBlockCoverage": true },
>>>         {
>>>             "functionName": "showContent",
>>>             "ranges": [{ "startOffset": 71, "endOffset": 448, "count": 1 
>>> }],
>>>             "isBlockCoverage": true
>>>         },
>>>         {
>>>             "functionName": "",
>>>             "ranges": [{ "startOffset": 274, "endOffset": 444, "count": 
>>> 3 }],
>>>             "isBlockCoverage": true
>>>         },
>>>         {
>>>             "functionName": "handleSubmit",
>>>             "ranges": [{ "startOffset": 450, "endOffset": 703, "count": 
>>> 0 }],
>>>             "isBlockCoverage": false
>>>         }
>>>     ]
>>> }, 
>>>
>>> but instead I get this:
>>> {
>>>     "scriptId": "16",
>>>     "url": 
>>> "file:///home/<user>/v8-chrome-coverage-wdio-sync/public/js/authors.js",
>>>     "functions": [
>>>         {
>>>             "functionName": "",
>>>             "ranges": [{ "startOffset": 0, "endOffset": 828, "count": 1 
>>> }],
>>>             "isBlockCoverage": true },
>>>         {
>>>             "functionName": "showContent",
>>>             "ranges": [{ "startOffset": 71, "endOffset": 448, "count": 1 
>>> }],
>>>             "isBlockCoverage": true
>>>         },
>>>         {
>>>             "functionName": "",
>>>             "ranges": [{ "startOffset": 274, "endOffset": 444, "count": 
>>> 3 }],
>>>             "isBlockCoverage": true
>>>         }
>>>     ]
>>> }, 
>>>
>>> i.e. there is no data at all on the uncovered function. This causes the c8 
>>> report tool to generate an invalid report.
>>>
>>> The above is what I observe on my company's codebase. I tried to create 
>>> simple reproductions that I could share, however all my simple projects are 
>>> working fine.
>>>
>>> Any suggestions or tips on what I could try to debug the problem would 
>>> be appreciated.
>>>
>>> (FYI ... here's a working version of the flow on a smaller project: 
>>> https://github.com/cek333/v8-chrome-coverage-wdio-sync)
>>>
>>> Thanks.
>>>
>>> -- 
>>> -- 
>>> v8-dev mailing list
>>> [email protected]
>>> 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 [email protected].
>>> To view this discussion on the web visit 
>>> https://groups.google.com/d/msgid/v8-dev/22d16033-590f-4de3-86de-a6aa6ebcbb74n%40googlegroups.com
>>>  
>>> <https://groups.google.com/d/msgid/v8-dev/22d16033-590f-4de3-86de-a6aa6ebcbb74n%40googlegroups.com?utm_medium=email&utm_source=footer>
>>> .
>>>
>>

-- 
-- 
v8-dev mailing list
[email protected]
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 [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/v8-dev/45317061-acd7-42ac-973a-3e36b4687052n%40googlegroups.com.

Reply via email to