Pernosco / pernosco

General-purpose public wiki and issue tracking
13 stars 0 forks source link

Conditional filtering of executions doesn't support any complexity in expression? #52

Closed mgaudet closed 2 years ago

mgaudet commented 2 years ago

In a trace, I was looking for a particular call, where GetNameOperation's name argument pointed to a string ReadableStream

While I was able to print the names associated with the calls by putting **(name.ptr).d.inlineStorageLatin1 in the print box, I couldn't filter out calls to look for ReadableStream by doing for example **(name.ptr).d.inlineStorageLatin1[0] == 'R' in the condition box. It just was annoyed and printed lots of the expression in red.

I'm not sure what the limitations are in the condition, but it was frustrating that print would work, but filtering based on very similar information wouldn't.

khuey commented 2 years ago

You probably want **(name.ptr).d.inlineStorageLatin1 =~ m/^R/, maybe plus the "hide invalid conditions" button that appears on mouseover on the red. I think there's some issues here with string handling that I'll look into.

khuey commented 2 years ago

This was caused by incorrect handling of character/string literals. Going forward both **(name.ptr).d.inlineStorageLatin1[0] == 'R' and **(name.ptr).d.inlineStorageLatin1 == "ReadableStream" will behave in the intuitive manner.