node.js - 了解节点引用错误转储
问题描述
试图通过理解错误转储来更好地了解如何调试。例如,我有一个参考错误如下:
ReferenceError: Can't find variable: title
This error is located at:
in TimerForm (at ToggleTimerForm.js:44)
in RCTView (at View.js:60)
in View (at ToggleTimerForm.js:42)
in ToggleableTimerForm (at App.js:54)
in RCTView (at View.js:60)
in View (at ScrollView.js:791)
in RCTScrollView (at ScrollView.js:887)
in ScrollView (at App.js:53)
in RCTView (at View.js:60)
in View (at App.js:47)
in App (at registerRootComponent.js:35)
in RootErrorBoundary (at registerRootComponent.js:34)
in ExpoRootComponent (at renderApplication.js:33)
in RCTView (at View.js:60)
in View (at AppContainer.js:102)
in RCTView (at View.js:60)
in View (at AppContainer.js:122)
in AppContainer (at renderApplication.js:32)
* components/TimerForm.js:54:6 in render
- node_modules/react-proxy/modules/createPrototypeProxy.js:44:35 in proxiedMethod
- node_modules/react-native/Libraries/Renderer/ReactNativeRenderer-dev.js:8811:23 in finishClassComponent
- ... 17 more stack frames from framework internals
本能地,我看的第一个地方是 TimerForm,但后来我看到 ToggleTimerForm.js 也列出来了。'in' 是什么意思,'at' 是什么意思?另外,为什么列出这么多文件?它们在这个错误转储中的意义是什么?
希望更好地了解这一切是如何运作的!
解决方案
这基本上只是一个调用堆栈,一个相互调用的函数链。通常,您希望查看最新的简单错误,但通常您可能需要向上走几层才能理解逻辑。
请注意,调用堆栈可能以不同的方式显示,具体取决于框架。在这种情况下,您看到的是 react 调用堆栈,而不是 vanilla node.js 堆栈。
推荐阅读
- authentication - 如何登录 VS Code 账户管理,它是如何工作的?
- python - 在某些给定条件下,熊猫数据框中的 2 列的差异
- c++ - 如何初始化地图的复制构造函数?
- c - 如何使用 ZeroMQ 实现多个套接字?
- c++ - 比特币核心 libbitcoin_server_a-httpserver.o 错误
- python - 使用 azure.storage.blob 将 Python DataFrame 作为 CSV 写入 Azure Blob
- go - JetBrains 的 GoLand 如何找到接口的实现?
- cron - 从 crontab 中删除单个 cronjob
- java - 在使用 findall 或其他查询从存储库中获取属性值后更改属性值时,在 Spring Boot JPA 中禁用数据库更新
- c# - CS0019 C# 运算符“+”不能应用于“字符串”和“方法组”类型的操作数