react-native 在最新的Chrome版本上,堆快照抛出RangeError: 无效的类型化数组长度:-1,

8ehkhllq  于 4个月前  发布在  React
关注(0)|答案(8)|浏览(67)

描述

在 Chrome DevTools 的 Memory 标签页中尝试进行堆快照时,会抛出提供的堆栈跟踪部分中的错误。
Chrome 版本:126.0.6478.183
iOS SImulator:17.0 iPhone SE 3rd gen
Android Emulator:Pixel 7 Android 11.0
错误不会出现在 Chrome 版本 124.0.6367.203 上,在那里正常工作。

重现步骤

  1. npx @react-native-community/cli@latest init AwesomeProject
  2. npm start
  3. 打开 iOS/Android Simulator
  4. 转到 chrome://inspect
  5. 打开 DevTools,实验性调试器或不使用,这没关系
  6. 转到 Memory 标签页
  7. 在标签页底部点击 Take snapshot

React Native 版本

0.74.3 - 0.72.0

受影响的平台

运行时 - Android,运行时 - iOS

npx react-native info 的输出

System:
  OS: macOS 13.5.2
  CPU: (8) arm64 Apple M1 Pro
  Memory: 100.45 MB / 16.00 GB
  Shell:
    version: "5.9"
    path: /bin/zsh
Binaries:
  Node:
    version: 20.5.1
    path: ~/.asdf/installs/nodejs/20.5.1/bin/node
  Yarn: Not Found
  npm:
    version: 9.8.0
    path: ~/.asdf/plugins/nodejs/shims/npm
  Watchman:
    version: 2023.11.20.00
    path: /opt/homebrew/bin/watchman
Managers:
  CocoaPods:
    version: 1.14.3
    path: /opt/homebrew/bin/pod
SDKs:
  iOS SDK:
    Platforms:
      - DriverKit 23.0
      - iOS 17.0
      - macOS 14.0
      - tvOS 17.0
      - watchOS 10.0
  Android SDK: Not Found
IDEs:
  Android Studio: 2024.1 AI-241.18034.62.2411.12071903
  Xcode:
    version: 15.0.1/15A507
    path: /usr/bin/xcodebuild
Languages:
  Java:
    version: javac 21
    path: /Users/mariuszmorawski/.asdf/shims/javac
  Ruby:
    version: 3.2.2
    path: /Users/mariuszmorawski/.asdf/shims/ruby
npmPackages:
  "@react-native-community/cli": Not Found
  react:
    installed: 18.2.0
    wanted: 18.2.0
  react-native:
    installed: 0.74.3
    wanted: 0.74.3
  react-native-macos: Not Found
npmGlobalPackages:
  "*react-native*": Not Found
Android:
  hermesEnabled: true
  newArchEnabled: false
iOS:
  hermesEnabled: true
  newArchEnabled: false

堆栈跟踪或日志

An error occurred when a call to method 'buildSnapshot' was requested
RangeError: Invalid typed array length: -1
    at new Uint32Array (<anonymous>)
    at F.initialize (devtools://devtools/bundled/devtools-frontend/front_end/entrypoints/heap_snapshot_worker/heap_snapshot_worker.js:1:14793)
    at new F (devtools://devtools/bundled/devtools-frontend/front_end/entrypoints/heap_snapshot_worker/heap_snapshot_worker.js:1:38027)
    at _.buildSnapshot (devtools://devtools/bundled/devtools-frontend/front_end/entrypoints/heap_snapshot_worker/heap_snapshot_worker.js:1:47869)
    at HeapSnapshotWorkerDispatcher.dispatchMessage (devtools://devtools/bundled/devtools-frontend/front_end/entrypoints/heap_snapshot_worker/heap_snapshot_worker.js:1:51664)

可复现问题

这并不重要,因为它发生在一个基本的应用上,但这里是代码。

截图和视频

  • 无响应*
khbbv19g

khbbv19g1#

@huntie 刚刚在0.74.3版本上测试了它,通过按下j键打开实验性调试器,它可以正常工作。

e37o9pze

e37o9pze2#

⚠️缺失可复现示例
i️我们无法在您的问题报告中检测到可复现的示例。请提供以下内容:* 如果您的错误与UI相关:一个 Snack* 如果您的错误与构建/更新相关:使用我们的 Reproducer Template 。需要在您用户名下的GitHub仓库中有一个复现器。
68bkxrlz

68bkxrlz3#

⚠️React Native的新版本可用!
i️您正在使用受支持的次要版本,但似乎有一个更新的补丁可用 - 0.72.15。请升级到您次要版本的最高补丁或最新版本,并验证问题是否仍然存在(或者,创建一个新项目并在其中重现问题)。如果无法重现,请告知我们,以便我们关闭此问题。这有助于确保我们关注仍在最近版本中存在的问题。
mv1qrgav

mv1qrgav4#

⚠️缺失可复现示例
i️我们无法在您的问题报告中检测到可复现的示例。请提供以下内容:* 如果您的错误与UI相关:一个 Snack* 如果您的错误与构建/更新相关:使用我们的 Reproducer Template
qnyhuwrf

qnyhuwrf5#

⚠️React Native的新版本可用!
i️您正在使用受支持的次要版本,但似乎有一个更新的补丁可用 - undefined。请访问您次要版本的最高补丁或最新版本并验证问题是否仍然存在(或者,创建一个新项目并在其中重现问题)。如果无法重现,请告知我们,以便我们关闭此问题。这有助于确保我们关注仍在最近版本中存在的问题。
vkc1a9a2

vkc1a9a26#

你能试穿0.74吗?@marmor157

ogq8wdun

ogq8wdun7#

对不起,我实际上已经在0.74版本上尝试过这个功能,但在描述中误删了。
我在以下版本上尝试过:

  • 0.72.0 版本的项目,这是我第一次注意到它的项目
  • 从命令行创建的全新应用和重现的应用上的0.74.3版本
mf98qq94

mf98qq948#

你好,@marmor157,你提到这个问题出现在最新的Chrome版本中。你可以尝试使用--experimental-debuggerj来打开前端。这种方法将使用我们之前测试过的带有版本信息的Chrome DevTools示例。

相关问题