In that case hacking in a new runtime call looks like your best option. You'll want to add a new entry to src/runtime.h, a new implementation in wherever (maybe in runtime-operators.cc, alongside Runtime_Equal) which does the appropriate printing, and then call it from the CSA Equals method using CallRuntime (look for CallRuntime(Runtime::kBigIntEqualToNumber,...) as an example RuntimeCall).
On Mon, Mar 4, 2019 at 5:41 PM <examm...@gmail.com> wrote: > I can see bytecode, but i need to see values... > > Le lundi 4 mars 2019 17:21:38 UTC+1, Leszek Swirski a écrit : >> >> That's a surprisingly tricky thing to do, despite sounding simple. You >> could add a new runtime function (e.g. LogComparison) which you call at the >> beginning of CodeStubAssembler::Equal, passing it the LHS and RHS. A bigger >> cannon that you could use on this mosquito is to enable ignition tracing >> (v8_enable_trace_ignition = true in gn args) and run your code with >> `--no-opt --trace-ignition`, which will print a line for every bytecode >> executed that you can then grep through. >> >> On Mon, Mar 4, 2019 at 4:52 PM <exam...@gmail.com> wrote: >> >>> Thanks >>> >>> in fact what i want to do is to log all comparisons at excecution. What >>> is the best way to do that ? >>> >>> Le lundi 4 mars 2019 13:15:53 UTC+1, Leszek Swirski a écrit : >>>> >>>> --force-slow-path is a bit confusing, and maybe not well named, I >>>> believe it only affects some builtins (regex etc.) >>>> >>>> For some more detail, a lot of functionality in V8 is implemented >>>> multiple times -- common, simpler fast paths (e.g. comparing numbers as you >>>> are) are implemented in "assembly" (which used to be actual machine code, >>>> now it's mostly CSA <https://v8.dev/docs/csa-builtins> or Torque >>>> <https://v8.dev/docs/torque-builtins> code), less common "slow" paths >>>> (e.g. comparing BigInts) will go to the "runtime" (i.e. into the C++ code). >>>> These runtime functions also have fast and slow paths (which are really >>>> more like medium speed and extra slow), and the flag you mentioned is for >>>> forcing those slow paths. >>>> >>>> For specifically comparison, you probably want to hook into >>>> CodeStubAssembler::Equal >>>> <https://cs.chromium.org/chromium/src/v8/src/code-stub-assembler.cc?type=cs&q=CodeStubAssembler::Equal&sq=package:chromium&g=0&l=11680>, >>>> though keep in mind that the linked code is *generating* the >>>> comparison code, not *calculating* or executing it. You'll also want >>>> to disable optimisation (--no-opt) to make sure you don't enter optimized >>>> code (which inlines the comparison). >>>> >>>> - Leszek >>>> >>>> On Mon, Mar 4, 2019 at 9:49 AM <exam...@gmail.com> wrote: >>>> >>>>> I have tried to add --force-slow-path argument and it does not change >>>>> anything >>>>> >>>>> Le lundi 4 mars 2019 08:56:09 UTC+1, exam...@gmail.com a écrit : >>>>>> >>>>>> Thanks >>>>>> >>>>>> What do you mean by 'slow path' ? >>>>>> Where should i put some code in order to hook comparisons operators ? >>>>>> >>>>> -- >>>>> -- >>>>> 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-dev+un...@googlegroups.com. >>>>> 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-dev+un...@googlegroups.com. >>> 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. > 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. For more options, visit https://groups.google.com/d/optout.