zed/crates
Max Brunsfeld 46d2cbaa4c
Improve panic reports (#2560)
* Add an `identifying_backtrace` field that only contains symbols in
*our* own codebase, which can be used for better deduplication.
* In the main backtrace, include file and line numbers for all symbols
in our codebase
* Exclude any stack frames within the panic handling/hooking system
itself, so that the top line of the backtrace is where the panic
originated in our codebase.

This should improve our panic deduplication, and also make panic reports
a bit more readable.

example:

```
{
  "thread": "main",
  "payload": "wtf",
  "location_data": {
    "file": "crates/zed/src/zed.rs",
    "line": 459
  },
  "backtrace": [
    "zed::open_log_file::{{closure}}::{{closure}}::{{closure}}",
    "    crates/zed/src/zed.rs:459",
    "gpui::app::AppContext::spawn_internal::{{closure}}",
    "    crates/gpui/src/app.rs:2073",
    "gpui::executor::any_local_future::{{closure}}",
    "    crates/gpui/src/executor.rs:1026",
    "<core::pin::Pin<P> as core::future::future::Future>::poll",
    "<async_task::runnable::spawn_local::Checked<F> as core::future::future::Future>::poll",
    "async_task::raw::RawTask<F,T,S>::run",
    "async_task::runnable::Runnable::run",
    "<gpui::platform::mac::dispatcher::Dispatcher as gpui::platform::Dispatcher>::run_on_main_thread::trampoline",
    "    crates/gpui/src/platform/mac/dispatcher.rs:40",
    "<() as objc::message::MessageArguments>::invoke",
    "objc::message::platform::send_unverified",
    "objc::message::send_message",
    "<gpui::platform::mac::platform::MacForegroundPlatform as gpui::platform::ForegroundPlatform>::run",
    "    crates/gpui/src/platform/mac/platform.rs:366",
    "gpui::app::App::run",
    "    crates/gpui/src/app.rs:251",
    "Zed::main",
    "    crates/zed/src/main.rs:118",
    "core::ops::function::FnOnce::call_once",
    "std::sys_common::backtrace::__rust_begin_short_backtrace",
    "std::rt::lang_start::{{closure}}",
    "core::ops::function::impls::<impl core::ops::function::FnOnce<A> for &F>::call_once",
    "std::rt::lang_start"
  ],
  "release_channel": "dev",
  "os_name": "macOS",
  "os_version": "12.6.1",
  "architecture": "aarch64",
  "panicked_on": 1685734744050,
  "identifying_backtrace": [
    "zed::open_log_file::{{closure}}::{{closure}}::{{closure}}",
    "gpui::app::AppContext::spawn_internal::{{closure}}",
    "gpui::executor::any_local_future::{{closure}}",
    "<gpui::platform::mac::dispatcher::Dispatcher as gpui::platform::Dispatcher>::run_on_main_thread::trampoline",
    "<gpui::platform::mac::platform::MacForegroundPlatform as gpui::platform::ForegroundPlatform>::run",
    "gpui::app::App::run",
    "Zed::main"
  ]
}
```

Release Notes:

N/A
2023-06-02 13:11:57 -07:00
..
activity_indicator Enable test-support on editor in tests 2023-05-20 09:54:38 -06:00
ai Properly display labels for currently opened external files 2023-05-26 15:44:44 +03:00
assets 🎨 Specify more dependencies at the workspace level 2023-04-24 17:41:55 -07:00
auto_update WIP: Stream in completions 2023-05-22 20:28:22 -06:00
breadcrumbs Define theme/ui text style settings in theme crate 2023-05-17 14:44:59 -07:00
call 🎨 Specify more dependencies at the workspace level 2023-04-24 17:41:55 -07:00
cli Unit test file:row:column parsing 2023-05-16 21:07:48 +03:00
client Add architecture to clickhouse event request body 2023-05-22 21:45:58 -04:00
clock 🎨 Specify more dependencies at the workspace level 2023-04-24 17:41:55 -07:00
collab Add support for folder-specific settings (#2537) 2023-05-31 16:27:08 -07:00
collab_ui Merge branch 'main' into panels 2023-05-22 14:10:17 +02:00
collections Move command palette filter into collections crate 2023-03-28 20:13:17 -07:00
command_palette Define theme/ui text style settings in theme crate 2023-05-17 14:44:59 -07:00
context_menu Define theme/ui text style settings in theme crate 2023-05-17 14:44:59 -07:00
copilot Make language_settings take a language, not a language name 2023-05-31 15:10:30 -07:00
copilot_button Make language_settings take a language, not a language name 2023-05-31 15:10:30 -07:00
db WIP 2023-05-22 23:11:27 -06:00
diagnostics Fix tests 2023-05-25 14:29:28 -04:00
drag_and_drop Prevent some cases of clipping icons due to pixel coord rounding 2023-05-08 11:42:00 -04:00
editor editor: add select previous command (#2556) 2023-06-02 17:32:34 +02:00
feedback Add additional panic information to panic events 2023-06-01 23:34:39 -04:00
file_finder Shorten full paths with ~ 2023-05-27 01:21:38 +03:00
fs Avoid removing fake fs entry when rename fails later in the process 2023-05-16 13:00:39 -04:00
fsevent 🎨 Specify more dependencies at the workspace level 2023-04-24 17:41:55 -07:00
fuzzy remove commented line 2023-02-27 12:06:10 -08:00
git Clean up final remaining code paths calling old diff update method 2023-05-25 14:41:09 -04:00
go_to_line Enable test-support on editor in tests 2023-05-20 09:54:38 -06:00
gpui Fix ambiguous glob export warnings in rust 1.70 2023-06-01 14:07:59 -07:00
gpui_macros Move methods querying window state into AsyncAppContext 2023-05-02 19:38:48 +02:00
install_cli 🎨 Specify more dependencies at the workspace level 2023-04-24 17:41:55 -07:00
journal Enable test-support on editor in tests 2023-05-20 09:54:38 -06:00
language 🎨 2023-05-31 15:13:01 -07:00
language_selector Enable test-support on editor in tests 2023-05-20 09:54:38 -06:00
live_kit_client Merge remote-tracking branch 'origin/main' into zmd 2023-05-24 11:04:07 -06:00
live_kit_server 🎨 Specify more dependencies at the workspace level 2023-04-24 17:41:55 -07:00
lsp Update LSP to the newest version 2023-05-28 21:55:08 +03:00
lsp_log Enable test-support on editor in tests 2023-05-20 09:54:38 -06:00
media 🎨 Specify more dependencies at the workspace level 2023-04-24 17:41:55 -07:00
menu Remove internal actions from menu crate 2023-04-27 14:29:11 +02:00
node_runtime Source ESLint server from Github rather than 3rd party NPM package 2023-04-28 16:42:36 -04:00
outline Enable test-support on editor in tests 2023-05-20 09:54:38 -06:00
picker Enable test-support on editor in tests 2023-05-20 09:54:38 -06:00
plugin 🎨 Specify more dependencies at the workspace level 2023-04-24 17:41:55 -07:00
plugin_macros 🎨 Specify more dependencies at the workspace level 2023-04-24 17:41:55 -07:00
plugin_runtime 🎨 Specify more dependencies at the workspace level 2023-04-24 17:41:55 -07:00
project Add support for folder-specific settings (#2537) 2023-05-31 16:27:08 -07:00
project_panel Fix duplicate item creation in project panel 2023-05-26 02:07:25 +03:00
project_symbols Update LSP to the newest version 2023-05-28 21:55:08 +03:00
recent_projects Enable test-support on editor in tests 2023-05-20 09:54:38 -06:00
rope editor: add select previous command (#2556) 2023-06-02 17:32:34 +02:00
rpc Bump protocol version 2023-05-31 09:03:45 -07:00
search Change "Project search" to "Project Search" 2023-06-01 12:31:37 +02:00
settings Avoid writing spurious nulls to settings file when updating it programatically 2023-06-02 13:02:17 -07:00
snippet 🎨 Specify more dependencies at the workspace level 2023-04-24 17:41:55 -07:00
sqlez Merge remote-tracking branch 'origin/main' into zmd 2023-05-24 11:04:07 -06:00
sqlez_macros 🎨 Specify more dependencies at the workspace level 2023-04-24 17:41:55 -07:00
staff_mode 🎨 Specify more dependencies at the workspace level 2023-04-24 17:41:55 -07:00
sum_tree Made the map seek target a publicly implementable interface 2023-05-12 08:37:32 -07:00
terminal Persist project and terminal panel sizes 2023-05-22 15:55:44 +02:00
terminal_view Redraw the terminal on every wakeup 2023-06-01 10:49:31 -07:00
text editor: add select previous command (#2556) 2023-06-02 17:32:34 +02:00
theme Seperate pane and panel styling 2023-05-30 16:23:16 -07:00
theme_selector Enable test-support on editor in tests 2023-05-20 09:54:38 -06:00
theme_testbench Move font size adjustment code to the theme crate 2023-05-17 15:56:32 -07:00
util add version check 2023-05-31 14:16:37 -07:00
vim WIP 2023-05-22 23:11:27 -06:00
welcome WIP: Remove focus side effects from toggle dock commands 2023-05-30 12:00:15 -07:00
workspace Unzoom all panes when opening a dock 2023-06-01 15:20:15 -07:00
zed Improve panic reports 2023-06-02 12:37:39 -07:00