1. 12 May, 2022 1 commit
    • Jakob Kummerow's avatar
      Revert "[tools] Add a simple gdb frame unwinder" · a5906c24
      Jakob Kummerow authored
      This reverts commit c3ac338b.
      
      Reason for revert: Breaks stepping with `n`
      
      Original change's description:
      > [tools] Add a simple gdb frame unwinder
      >
      > Add a simple unwinder for gdb which, on x64,  walks frame pointers
      > whenever there is no source information available. Ideally we would only
      > do this for V8 PCs but this appears hard to do in an Unwinder without
      > messing with gdb's internal assumptions.
      >
      > Change-Id: Iba1e62a3768340ee912e81d691237c1920a8ae91
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3608628
      > Reviewed-by: Camillo Bruni <cbruni@chromium.org>
      > Commit-Queue: Leszek Swirski <leszeks@chromium.org>
      > Cr-Commit-Position: refs/heads/main@{#80204}
      
      Change-Id: I0264cf34cfe8fe2331bacf202dedbb4706535936
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3644855
      Commit-Queue: Leszek Swirski <leszeks@chromium.org>
      Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
      Reviewed-by: 's avatarLeszek Swirski <leszeks@chromium.org>
      Auto-Submit: Jakob Kummerow <jkummerow@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#80493}
      a5906c24
  2. 27 Apr, 2022 1 commit
  3. 25 Apr, 2022 1 commit
  4. 04 Jan, 2022 1 commit
  5. 18 Oct, 2021 1 commit
    • Leszek Swirski's avatar
      [tools] Fix gdb frame skip over dummy frames · 5e9afd64
      Leszek Swirski authored
      The gdb DCHECK frame skipping automatically skips over all the abort
      etc. frames to get you to that DCHECK callsite you're actually looking
      for.
      
      However, this is annoying if you tried to call a function with a
      breakpoint from the gdb prompt; the frame skipping wold skip over your
      breakpoint back up to the failing DCHECK.
      
      Now, we abort the frame walk on dummy frames inserted by gdb execution.
      
      Change-Id: I2cf89ea9219374ad7c562c6eb13afe471038b033
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3229376
      Commit-Queue: Leszek Swirski <leszeks@chromium.org>
      Auto-Submit: Leszek Swirski <leszeks@chromium.org>
      Reviewed-by: 's avatarClemens Backes <clemensb@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#77436}
      5e9afd64
  6. 07 Jul, 2021 1 commit
  7. 11 Feb, 2021 1 commit
  8. 02 Feb, 2021 1 commit
    • Leszek Swirski's avatar
      [arm64/sim] Add a 'sim' gdb command · 1f72df06
      Leszek Swirski authored
      Extract out the command processing from Simulator::Debug(), and expose
      it to gdb as a new 'sim' command. Example usage:
      
          (gdb) sim p x15
          (gdb) sim stack
      
      The sim command will execute that one command, and will return to gdb.
      
      For a list of all commands, you can call
      
          (gdb) sim help
      
      Note that sim won't resume simulator execution until gdb continues
      execution; for example, `sim next` will set a breakpoint on the next
      instruction, and will return to gdb. The user then has to continue
      execution in gdb, at which point the simulator will break. The user can
      then re-enter gdb with the gdb command. This will look like this:
      
          (gdb) sim next
          (gdb) continue
          ...
          sim> gdb
          (gdb) ...
      
      Change-Id: I678e71e2642d8427950b5f7ed65890ceae69e18d
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2664448
      Commit-Queue: Leszek Swirski <leszeks@chromium.org>
      Reviewed-by: 's avatarDan Elphick <delphick@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#72479}
      1f72df06
  9. 23 Jan, 2020 1 commit
  10. 09 Oct, 2019 1 commit
  11. 27 Jun, 2019 1 commit
  12. 19 Jun, 2019 1 commit
  13. 14 May, 2019 1 commit
  14. 20 Mar, 2019 1 commit
  15. 14 Mar, 2019 1 commit
  16. 06 Mar, 2019 1 commit
  17. 01 Mar, 2019 1 commit
  18. 19 Feb, 2019 1 commit
  19. 08 Jan, 2019 1 commit
  20. 18 Dec, 2018 1 commit
  21. 14 Dec, 2018 1 commit
    • Clemens Hammacher's avatar
      [gdb] Print DCHECK error message · 19d39a0f
      Clemens Hammacher authored
      When selecting the frame above the V8_Dcheck method (at the DCHECK
      location), it helps enormously to immediately see the error message
      generated by the DCHECK. This extends the dcheck_stop_handler to find
      and print this message.
      
      Drive-by: Speed up the handler by stopping after the first V8_Dcheck
      frame.
      
      R=mstarzinger@chromium.org
      
      Bug: v8:8562
      Change-Id: If3a8f3aaab6a0014006ccac7260f37d5d90363c5
      No-Try: true
      Reviewed-on: https://chromium-review.googlesource.com/c/1378170Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#58238}
      19d39a0f
  22. 12 Nov, 2018 1 commit
  23. 21 Aug, 2018 1 commit
  24. 14 Aug, 2018 1 commit
  25. 26 Jun, 2018 1 commit
  26. 06 Dec, 2017 1 commit
  27. 06 Jul, 2017 1 commit
  28. 09 May, 2017 1 commit
  29. 14 Feb, 2017 1 commit
  30. 06 Feb, 2017 1 commit
    • mvstanton's avatar
      [TypeFeedbackVector] Root feedback vectors at function literal site. · aea3ce3d
      mvstanton authored
      TypeFeedbackVectors are strongly rooted by a closure. However, in modern
      JavaScript closures are created and abandoned more freely. An important
      closure may not be present in the root-set at time of garbage collection,
      even though we've cached optimized code and use it regularly. For
      example, consider leaf functions in an event dispatching system. They may
      well be "hot," but tragically non-present when we collect the heap.
      
      Until now, we've relied on a weak root to cache the feedback vector in
      this case. Since there is no way to signal intent or relative importance,
      this weak root is as susceptible to clearing as any other weak root at
      garbage collection time.
      
      Meanwhile, the feedback vector has become more important. All of our
      ICs store their data there. Literal and regex boilerplates are stored there.
      If we lose the vector, then we not only lose optimized code built from
      it, we also lose the very feedback which allowed us to create that optimized
      code. Therefore it's vital to express that dependency through the root
      set.
      
      This CL does this by creating a strong link to a feedback
      vector at the instantiation site of the function closure.
      This instantiation site is in the code and feedback vector
      of the outer closure.
      
      BUG=v8:5456
      
      Review-Url: https://codereview.chromium.org/2674593003
      Cr-Commit-Position: refs/heads/master@{#42953}
      aea3ce3d
  31. 13 Jan, 2017 1 commit
  32. 28 Nov, 2016 1 commit
  33. 04 Nov, 2016 2 commits
    • yangguo's avatar
      Add missing "end" to gdb macro · 388acfc4
      yangguo authored
      TBR=jochen@chromium.org
      
      Review-Url: https://codereview.chromium.org/2474433011
      Cr-Commit-Position: refs/heads/master@{#40749}
      388acfc4
    • yangguo's avatar
      Add gdb macro to find assertion scopes on the stack. · 6ab61037
      yangguo authored
      This is how it would look like.
      
      (gdb) bta
      [1 ] V8_Fatal                                         ../../src/base/logging.cc:67
      [2 ] v8::internal::Heap::AllocateRaw                  ../../src/heap/heap-inl.h:298
      [3 ] v8::internal::Heap::AllocateHeapNumber           ../../src/heap/heap.cc:2432
      [4 ] v8::internal::Factory::NewHeapNumber             ../../src/factory.cc:1253
      [5 ] v8::internal::Factory::NewNumber                 ../../src/factory.cc:1228
      [6 ] v8::internal::__RT_impl_Runtime_ConstructDouble  ../../src/runtime/runtime-test.cc:32
       -> Allow HEAP_ALLOCATION (yes_gc)
       -> Disallow HEAP_ALLOCATION (no_gc)
      [7 ] v8::internal::Runtime_ConstructDouble            ../../src/runtime/runtime-test.cc:24
      
      R=jochen@chromium.org
      
      Review-Url: https://codereview.chromium.org/2466263007
      Cr-Commit-Position: refs/heads/master@{#40748}
      6ab61037
  34. 28 Jul, 2016 2 commits
    • ishell's avatar
      [gdb] Define print functions used by gdb macros in the top level namespace to... · e063b711
      ishell authored
      [gdb] Define print functions used by gdb macros in the top level namespace to make them always be available.
      
      This should fix the following errors that sometimes appear when using V8 gdb macros:
        Cannot evaluate function -- may be inlined
      or
        No symbol "xxx" in namespace "v8::internal".
      
      Review-Url: https://codereview.chromium.org/2186293002
      Cr-Commit-Position: refs/heads/master@{#38145}
      e063b711
    • jochen's avatar
      Add a jss gdb macro that skips over the jitted stack in gdb · a8118084
      jochen authored
      Use it like this:
      
      Program received signal SIGTRAP, Trace/breakpoint trap.
      [Switching to Thread 0x7f50d02c4700 (LWP 8152)]
      base::debug::(anonymous namespace)::DebugBreak ()
          at ../../base/debug/debugger_posix.cc:230
      230     }
      (gdb) bt
          at ../../base/debug/debugger_posix.cc:230
      ...
          args_object=0x7f50d02bfe00, isolate=0x2f001c9e2020)
          at ../../v8/src/builtins/builtins-api.cc:123
      ...
      (gdb) jss
      (gdb) bt
          isolate=0x2f001c9e2020, is_construct=false, target=..., receiver=...,
          argc=1, args=0x7f50d02c0518, new_target=...)
          at ../../v8/src/execution.cc:111
          isolate=0x2f001c9e2020, callable=..., receiver=..., argc=1,
          argv=0x7f50d02c0518) at ../../v8/src/execution.cc:168
      ...
      
      R=yangguo@chromium.org
      BUG=
      
      Review-Url: https://codereview.chromium.org/2186013002
      Cr-Commit-Position: refs/heads/master@{#38121}
      a8118084
  35. 15 Jul, 2015 1 commit
    • mvstanton's avatar
      Special printing for type feedback vectors. · 9386b861
      mvstanton authored
      Gdb macro jfv on an object will print it as a feedback vector.
      Printouts look like this:
      
      DebugPrint: 0x5dc0d2ad: [TypeFeedbackVector]
       - length: 12
       - ics with type info: 3
       - generic ics: 0
       ICSlot 0 CALL_IC MONOMORPHIC
        [4]: 0x5dc0d365 WeakCell for 0x5dc0cd69 <JS Function foo (SharedFunctionInfo 0x5dc0cb0d)>
        [5]: 0x4203c4c1 <Code: HANDLER>
       ICSlot 1 LOAD_IC MONOMORPHIC
        [6]: 0x5dc0d1f5 WeakCell for 0x3a710481 <Map(FAST_HOLEY_SMI_ELEMENTS)>
        [7]: 0x4203a1c1 <Code: HANDLER>
       ICSlot 2 LOAD_IC UNINITIALIZED
        [8]: 0x3060d045 <Symbol: 711234650 <String[20]: uninitialized_symbol>>
        [9]: 0x3060d045 <Symbol: 711234650 <String[20]: uninitialized_symbol>>
       ICSlot 3 LOAD_IC MONOMORPHIC
        [10]: 0x5dc0d3b5 WeakCell for 0x3a710d71 <Map(FAST_HOLEY_ELEMENTS)>
        [11]: 0x4202af01 <Code: HANDLER>
      
      BUG=
      
      Review URL: https://codereview.chromium.org/1225403005
      
      Cr-Commit-Position: refs/heads/master@{#29679}
      9386b861
  36. 12 Jun, 2015 1 commit
  37. 24 Oct, 2014 1 commit
  38. 23 Oct, 2014 1 commit