diff --git a/pkg/frontend/readpath/queryfrontend/query_frontend.go b/pkg/frontend/readpath/queryfrontend/query_frontend.go index 8e143ec864..c1759cdb94 100644 --- a/pkg/frontend/readpath/queryfrontend/query_frontend.go +++ b/pkg/frontend/readpath/queryfrontend/query_frontend.go @@ -4,6 +4,7 @@ import ( "context" "fmt" "math/rand" + "path/filepath" "slices" "sync" "time" @@ -134,6 +135,12 @@ func (q *QueryFrontend) Query( if err != nil { return nil, status.Error(codes.Internal, fmt.Sprintf("symbolizing profiles: %v", err)) } + } else if q.hasAnyUnsymbolizedBlocks(blocks) { + // When symbolizer is disabled, create stubs for unsymbolized locations + err = q.createStubsForUnsymbolizedProfiles(ctx, resp, req.Query) + if err != nil { + return nil, status.Error(codes.Internal, fmt.Sprintf("creating stubs: %v", err)) + } } // TODO(kolesnikovae): Extend diagnostics @@ -201,6 +208,16 @@ func (q *QueryFrontend) hasUnsymbolizedProfiles(block *metastorev1.BlockMeta) bo return len(slices.Collect(metadata.FindDatasets(block, matcher))) > 0 } +// hasAnyUnsymbolizedBlocks checks if any block has unsymbolized profiles +func (q *QueryFrontend) hasAnyUnsymbolizedBlocks(blocks []*metastorev1.BlockMeta) bool { + for _, block := range blocks { + if q.hasUnsymbolizedProfiles(block) { + return true + } + } + return false +} + // shouldSymbolize determines if we should symbolize profiles based on tenant settings func (q *QueryFrontend) shouldSymbolize(tenants []string, blocks []*metastorev1.BlockMeta) bool { if q.symbolizer == nil { @@ -213,13 +230,7 @@ func (q *QueryFrontend) shouldSymbolize(tenants []string, blocks []*metastorev1. } } - for _, block := range blocks { - if q.hasUnsymbolizedProfiles(block) { - return true - } - } - - return false + return q.hasAnyUnsymbolizedBlocks(blocks) } // processAndSymbolizeProfiles handles the symbolization of profiles from the response @@ -267,3 +278,87 @@ func (q *QueryFrontend) processAndSymbolizeProfiles( return nil } + +// createStubsForUnsymbolizedProfiles creates placeholder functions for unsymbolized locations +// when symbolizer is disabled. +func (q *QueryFrontend) createStubsForUnsymbolizedProfiles( + _ context.Context, + resp *queryv1.InvokeResponse, + originalQueries []*queryv1.Query, +) error { + if len(originalQueries) != len(resp.Reports) { + return fmt.Errorf("query/report count mismatch: %d queries but %d reports", + len(originalQueries), len(resp.Reports)) + } + + for _, r := range resp.Reports { + if r.Pprof == nil || r.Pprof.Pprof == nil { + continue + } + + var prof googlev1.Profile + if err := pprof.Unmarshal(r.Pprof.Pprof, &prof); err != nil { + return fmt.Errorf("failed to unmarshal profile: %w", err) + } + + stubFuncs := make(map[string]uint64) + modified := false + + for _, loc := range prof.Location { + if len(loc.Line) > 0 { + continue + } + + if loc.MappingId == 0 || int(loc.MappingId) > len(prof.Mapping) { + continue + } + mapping := prof.Mapping[loc.MappingId-1] + + binaryName := "unknown" + if mapping.Filename > 0 && int(mapping.Filename) < len(prof.StringTable) { + filename := prof.StringTable[mapping.Filename] + if len(filename) > 0 { + binaryName = filepath.Base(filename) + } + } + + var stubName string + if loc.Address == 0 { + stubName = binaryName + } else { + stubName = fmt.Sprintf("%s 0x%x", binaryName, loc.Address) + } + + funcID, exists := stubFuncs[stubName] + if !exists { + stubIdx := int64(len(prof.StringTable)) + prof.StringTable = append(prof.StringTable, stubName) + + // Create function + funcID = uint64(len(prof.Function) + 1) + prof.Function = append(prof.Function, &googlev1.Function{ + Id: funcID, + Name: stubIdx, + }) + stubFuncs[stubName] = funcID + } + + loc.Line = []*googlev1.Line{{ + FunctionId: funcID, + }} + modified = true + } + + if !modified { + continue + } + + profileBytes, err := pprof.Marshal(&prof, true) + if err != nil { + return fmt.Errorf("failed to marshal profile with stubs: %w", err) + } + r.Pprof.Pprof = profileBytes + } + + return nil +} diff --git a/pkg/frontend/readpath/queryfrontend/query_frontend_test.go b/pkg/frontend/readpath/queryfrontend/query_frontend_test.go index c88f641b1b..c1915c90ed 100644 --- a/pkg/frontend/readpath/queryfrontend/query_frontend_test.go +++ b/pkg/frontend/readpath/queryfrontend/query_frontend_test.go @@ -20,6 +20,7 @@ import ( typesv1 "github.com/grafana/pyroscope/api/gen/proto/go/types/v1" "github.com/grafana/pyroscope/pkg/block/metadata" "github.com/grafana/pyroscope/pkg/featureflags" + "github.com/grafana/pyroscope/pkg/pprof" "github.com/grafana/pyroscope/pkg/tenant" "github.com/grafana/pyroscope/pkg/test/mocks/mockfrontend" "github.com/grafana/pyroscope/pkg/test/mocks/mockmetastorev1" @@ -477,3 +478,248 @@ func Test_QueryFrontend_Series_WithLabelNameFiltering(t *testing.T) { }) } } + +func TestCreateStubsForUnsymbolizedProfiles(t *testing.T) { + tests := []struct { + name string + profile *profilev1.Profile + queries []*queryv1.Query + expectError bool + validateStubs func(t *testing.T, profile *profilev1.Profile) + }{ + { + name: "creates stubs for unsymbolized locations", + profile: &profilev1.Profile{ + StringTable: []string{"", "/usr/lib/libjvm.so"}, + SampleType: []*profilev1.ValueType{{Type: 1, Unit: 1}}, + Mapping: []*profilev1.Mapping{ + {Id: 1, Filename: 1, HasFunctions: false}, + }, + Location: []*profilev1.Location{ + {Id: 1, MappingId: 1, Address: 0xcafebabe, Line: nil}, + {Id: 2, MappingId: 1, Address: 0xdeadbeef, Line: nil}, + }, + Function: []*profilev1.Function{}, + Sample: []*profilev1.Sample{ + {LocationId: []uint64{1, 2}, Value: []int64{100}}, + }, + }, + queries: []*queryv1.Query{{QueryType: queryv1.QueryType_QUERY_PPROF}}, + validateStubs: func(t *testing.T, profile *profilev1.Profile) { + require.Len(t, profile.Location[0].Line, 1) + require.Len(t, profile.Location[1].Line, 1) + require.Len(t, profile.Function, 2) + func1Name := profile.StringTable[profile.Function[0].Name] + func2Name := profile.StringTable[profile.Function[1].Name] + assert.Equal(t, "libjvm.so 0xcafebabe", func1Name) + assert.Equal(t, "libjvm.so 0xdeadbeef", func2Name) + assert.Equal(t, profile.Function[0].Id, profile.Location[0].Line[0].FunctionId) + assert.Equal(t, profile.Function[1].Id, profile.Location[1].Line[0].FunctionId) + }, + }, + { + name: "deduplicates stubs by mapping and address combination", + profile: &profilev1.Profile{ + StringTable: []string{"", "/lib/libc.so", "/lib/libm.so"}, + SampleType: []*profilev1.ValueType{{Type: 1, Unit: 1}}, + Mapping: []*profilev1.Mapping{ + {Id: 1, Filename: 1, HasFunctions: false}, + {Id: 2, Filename: 2, HasFunctions: false}, + }, + Location: []*profilev1.Location{ + {Id: 1, MappingId: 1, Address: 0x1234, Line: nil}, + {Id: 2, MappingId: 1, Address: 0x5678, Line: nil}, + {Id: 3, MappingId: 2, Address: 0x1234, Line: nil}, + }, + Function: []*profilev1.Function{}, + Sample: []*profilev1.Sample{ + {LocationId: []uint64{1, 2, 3}, Value: []int64{50}}, + }, + }, + queries: []*queryv1.Query{{QueryType: queryv1.QueryType_QUERY_PPROF}}, + validateStubs: func(t *testing.T, profile *profilev1.Profile) { + require.Len(t, profile.Function, 3) + func1Name := profile.StringTable[profile.Function[0].Name] + func2Name := profile.StringTable[profile.Function[1].Name] + func3Name := profile.StringTable[profile.Function[2].Name] + assert.Equal(t, "libc.so 0x1234", func1Name) + assert.Equal(t, "libc.so 0x5678", func2Name) + assert.Equal(t, "libm.so 0x1234", func3Name) + }, + }, + { + name: "skips already symbolized locations", + profile: &profilev1.Profile{ + StringTable: []string{"", "/usr/bin/app", "symbolized_func"}, + SampleType: []*profilev1.ValueType{{Type: 1, Unit: 1}}, + Mapping: []*profilev1.Mapping{ + {Id: 1, Filename: 1, HasFunctions: true}, + }, + Location: []*profilev1.Location{ + {Id: 1, MappingId: 1, Address: 0x1000, Line: []*profilev1.Line{{FunctionId: 1}}}, + {Id: 2, MappingId: 1, Address: 0x2000, Line: nil}, + }, + Function: []*profilev1.Function{ + {Id: 1, Name: 2}, + }, + Sample: []*profilev1.Sample{ + {LocationId: []uint64{1, 2}, Value: []int64{25}}, + }, + }, + queries: []*queryv1.Query{{QueryType: queryv1.QueryType_QUERY_PPROF}}, + validateStubs: func(t *testing.T, profile *profilev1.Profile) { + require.Len(t, profile.Location[0].Line, 1) + assert.Equal(t, uint64(1), profile.Location[0].Line[0].FunctionId) + require.Len(t, profile.Location[1].Line, 1) + require.Len(t, profile.Function, 2) + stubFunc := profile.Function[1] + stubName := profile.StringTable[stubFunc.Name] + assert.Equal(t, "app 0x2000", stubName) + }, + }, + { + name: "handles multiple mappings", + profile: &profilev1.Profile{ + StringTable: []string{"", "/lib/liba.so", "/lib/libb.so"}, + SampleType: []*profilev1.ValueType{{Type: 1, Unit: 1}}, + Mapping: []*profilev1.Mapping{ + {Id: 1, Filename: 1, HasFunctions: false}, + {Id: 2, Filename: 2, HasFunctions: false}, + }, + Location: []*profilev1.Location{ + {Id: 1, MappingId: 1, Address: 0x100, Line: nil}, + {Id: 2, MappingId: 2, Address: 0x200, Line: nil}, + }, + Function: []*profilev1.Function{}, + Sample: []*profilev1.Sample{ + {LocationId: []uint64{1, 2}, Value: []int64{10}}, + }, + }, + queries: []*queryv1.Query{{QueryType: queryv1.QueryType_QUERY_PPROF}}, + validateStubs: func(t *testing.T, profile *profilev1.Profile) { + require.Len(t, profile.Function, 2) + func1Name := profile.StringTable[profile.Function[0].Name] + func2Name := profile.StringTable[profile.Function[1].Name] + assert.Equal(t, "liba.so 0x100", func1Name) + assert.Equal(t, "libb.so 0x200", func2Name) + }, + }, + { + name: "handles unknown binary name", + profile: &profilev1.Profile{ + StringTable: []string{""}, + SampleType: []*profilev1.ValueType{{Type: 0, Unit: 0}}, + Mapping: []*profilev1.Mapping{ + {Id: 1, Filename: 0, HasFunctions: false}, + }, + Location: []*profilev1.Location{ + {Id: 1, MappingId: 1, Address: 0xabc, Line: nil}, + }, + Function: []*profilev1.Function{}, + Sample: []*profilev1.Sample{ + {LocationId: []uint64{1}, Value: []int64{5}}, + }, + }, + queries: []*queryv1.Query{{QueryType: queryv1.QueryType_QUERY_PPROF}}, + validateStubs: func(t *testing.T, profile *profilev1.Profile) { + require.Len(t, profile.Function, 1) + funcName := profile.StringTable[profile.Function[0].Name] + assert.Equal(t, "unknown 0xabc", funcName) + }, + }, + { + name: "handles zero address without 0x0 suffix", + profile: &profilev1.Profile{ + StringTable: []string{"", "/usr/lib/libjvm.so"}, + SampleType: []*profilev1.ValueType{{Type: 1, Unit: 1}}, + Mapping: []*profilev1.Mapping{ + {Id: 1, Filename: 1, HasFunctions: false}, + }, + Location: []*profilev1.Location{ + {Id: 1, MappingId: 1, Address: 0x0, Line: nil}, + }, + Function: []*profilev1.Function{}, + Sample: []*profilev1.Sample{ + {LocationId: []uint64{1}, Value: []int64{100}}, + }, + }, + queries: []*queryv1.Query{{QueryType: queryv1.QueryType_QUERY_PPROF}}, + validateStubs: func(t *testing.T, profile *profilev1.Profile) { + require.Len(t, profile.Function, 1) + funcName := profile.StringTable[profile.Function[0].Name] + assert.Equal(t, "libjvm.so", funcName) + }, + }, + { + name: "query/report count mismatch returns error", + profile: &profilev1.Profile{ + StringTable: []string{""}, + Location: []*profilev1.Location{}, + Function: []*profilev1.Function{}, + Sample: []*profilev1.Sample{}, + }, + queries: []*queryv1.Query{ + {QueryType: queryv1.QueryType_QUERY_PPROF}, + {QueryType: queryv1.QueryType_QUERY_PPROF}, + }, + expectError: true, + }, + { + name: "no changes needed returns early", + profile: &profilev1.Profile{ + StringTable: []string{"", "/usr/bin/app", "func1"}, + Mapping: []*profilev1.Mapping{ + {Id: 1, Filename: 1, HasFunctions: true}, + }, + Location: []*profilev1.Location{ + {Id: 1, MappingId: 1, Address: 0x1000, Line: []*profilev1.Line{{FunctionId: 1}}}, + }, + Function: []*profilev1.Function{ + {Id: 1, Name: 2}, + }, + Sample: []*profilev1.Sample{ + {LocationId: []uint64{1}, Value: []int64{10}}, + }, + }, + queries: []*queryv1.Query{{QueryType: queryv1.QueryType_QUERY_PPROF}}, + validateStubs: func(t *testing.T, profile *profilev1.Profile) { + require.Len(t, profile.Function, 1, "should not add functions") + assert.Equal(t, "func1", profile.StringTable[2], "should not modify string table") + }, + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + profileBytes, err := pprof.Marshal(tt.profile, true) + require.NoError(t, err) + + resp := &queryv1.InvokeResponse{ + Reports: []*queryv1.Report{ + { + Pprof: &queryv1.PprofReport{Pprof: profileBytes}, + ReportType: queryv1.ReportType_REPORT_PPROF, + }, + }, + } + + qf := &QueryFrontend{} + err = qf.createStubsForUnsymbolizedProfiles(context.Background(), resp, tt.queries) + + if tt.expectError { + require.Error(t, err) + return + } + + require.NoError(t, err) + + var resultProfile profilev1.Profile + err = pprof.Unmarshal(resp.Reports[0].Pprof.Pprof, &resultProfile) + require.NoError(t, err) + + if tt.validateStubs != nil { + tt.validateStubs(t, &resultProfile) + } + }) + } +} diff --git a/pkg/test/integration/ingest_otlp_test.go b/pkg/test/integration/ingest_otlp_test.go index 48e77f371f..c027cb599b 100644 --- a/pkg/test/integration/ingest_otlp_test.go +++ b/pkg/test/integration/ingest_otlp_test.go @@ -104,7 +104,13 @@ func TestIngestOTLP(t *testing.T) { err = os.WriteFile(pprofDumpFileName, pprof, 0644) assert.NoError(t, err) - expectedBytes, err := os.ReadFile(metric.expectedJsonPath) + // Use different expected output files for v1 and v2 + expectedPath := metric.expectedJsonPath + if p.config.LimitsConfig.ReadPathOverrides.EnableQueryBackend { + expectedPath = strings.ReplaceAll(expectedPath, ".out.json", ".out.v2.json") + } + + expectedBytes, err := os.ReadFile(expectedPath) require.NoError(t, err) var expected strprofile.CompactProfile assert.NoError(t, json.Unmarshal(expectedBytes, &expected)) @@ -211,7 +217,13 @@ func TestIngestOTLPHTTPBinary(t *testing.T) { actualBytes, err := json.Marshal(actual) assert.NoError(t, err) - expectedBytes, err := os.ReadFile(metric.expectedJsonPath) + // Use different expected output files for v1 and v2 + expectedPath := metric.expectedJsonPath + if p.config.LimitsConfig.ReadPathOverrides.EnableQueryBackend { + expectedPath = strings.ReplaceAll(expectedPath, ".out.json", ".out.v2.json") + } + + expectedBytes, err := os.ReadFile(expectedPath) require.NoError(t, err) var expected strprofile.CompactProfile assert.NoError(t, json.Unmarshal(expectedBytes, &expected)) @@ -281,7 +293,13 @@ func TestIngestOTLPHTTPJSON(t *testing.T) { actualBytes, err := json.Marshal(actual) assert.NoError(t, err) - expectedBytes, err := os.ReadFile(metric.expectedJsonPath) + // Use different expected output files for v1 and v2 + expectedPath := metric.expectedJsonPath + if p.config.LimitsConfig.ReadPathOverrides.EnableQueryBackend { + expectedPath = strings.ReplaceAll(expectedPath, ".out.json", ".out.v2.json") + } + + expectedBytes, err := os.ReadFile(expectedPath) require.NoError(t, err) var expected strprofile.CompactProfile assert.NoError(t, json.Unmarshal(expectedBytes, &expected)) diff --git a/pkg/test/integration/testdata/README.md b/pkg/test/integration/testdata/README.md index 8054b3beee..1bbd88ab47 100644 --- a/pkg/test/integration/testdata/README.md +++ b/pkg/test/integration/testdata/README.md @@ -109,6 +109,7 @@ index bf7a6612f..1a6619243 100644 +} ``` 2.Launch local pyroscope instance + 3.Compile & start ebpf profiler with following parameters: ``` diff --git a/pkg/test/integration/testdata/otel-ebpf-profile.out.v2.json b/pkg/test/integration/testdata/otel-ebpf-profile.out.v2.json new file mode 100644 index 0000000000..72dd624460 --- /dev/null +++ b/pkg/test/integration/testdata/otel-ebpf-profile.out.v2.json @@ -0,0 +1,1783 @@ +{ + "sample_types": [ + { + "type": "cpu", + "unit": "nanoseconds" + } + ], + "samples": [ + { + "locations": [ + { + "address": "0x0", + "lines": [ + "runtime.findObject[]@/usr/local/go/src/runtime/mbitmap.go:1325" + ], + "mapping": "0x0-0x0@0x0 ()" + }, + { + "address": "0x0", + "lines": [ + "runtime.wbBufFlush1[]@/usr/local/go/src/runtime/mwbbuf.go:241" + ], + "mapping": "0x0-0x0@0x0 ()" + }, + { + "address": "0x0", + "lines": [ + "runtime.wbBufFlush.func1[]@/usr/local/go/src/runtime/mwbbuf.go:182" + ], + "mapping": "0x0-0x0@0x0 ()" + }, + { + "address": "0x0", + "lines": [ + "runtime.systemstack[]@/usr/local/go/src/runtime/asm_arm64.s:247" + ], + "mapping": "0x0-0x0@0x0 ()" + } + ], + "values": "50000000" + }, + { + "locations": [ + { + "address": "0x0", + "lines": [ + "finish_task_switch.isra.0[]@:0" + ], + "mapping": "0x0-0x0@0x0 vmlinux(b504d96f81cd330b0c6a1bcf667c033e1ae1bb02)" + }, + { + "address": "0x0", + "lines": [ + "__schedule[]@:0" + ], + "mapping": "0x0-0x0@0x0 vmlinux(b504d96f81cd330b0c6a1bcf667c033e1ae1bb02)" + }, + { + "address": "0x0", + "lines": [ + "schedule[]@:0" + ], + "mapping": "0x0-0x0@0x0 vmlinux(b504d96f81cd330b0c6a1bcf667c033e1ae1bb02)" + }, + { + "address": "0x0", + "lines": [ + "schedule_hrtimeout_range_clock[]@:0" + ], + "mapping": "0x0-0x0@0x0 vmlinux(b504d96f81cd330b0c6a1bcf667c033e1ae1bb02)" + }, + { + "address": "0x0", + "lines": [ + "schedule_hrtimeout_range[]@:0" + ], + "mapping": "0x0-0x0@0x0 vmlinux(b504d96f81cd330b0c6a1bcf667c033e1ae1bb02)" + }, + { + "address": "0x0", + "lines": [ + "ep_poll[]@:0" + ], + "mapping": "0x0-0x0@0x0 vmlinux(b504d96f81cd330b0c6a1bcf667c033e1ae1bb02)" + }, + { + "address": "0x0", + "lines": [ + "do_epoll_wait[]@:0" + ], + "mapping": "0x0-0x0@0x0 vmlinux(b504d96f81cd330b0c6a1bcf667c033e1ae1bb02)" + }, + { + "address": "0x0", + "lines": [ + "do_compat_epoll_pwait.part.0[]@:0" + ], + "mapping": "0x0-0x0@0x0 vmlinux(b504d96f81cd330b0c6a1bcf667c033e1ae1bb02)" + }, + { + "address": "0x0", + "lines": [ + "__arm64_sys_epoll_pwait[]@:0" + ], + "mapping": "0x0-0x0@0x0 vmlinux(b504d96f81cd330b0c6a1bcf667c033e1ae1bb02)" + }, + { + "address": "0x0", + "lines": [ + "invoke_syscall.constprop.0[]@:0" + ], + "mapping": "0x0-0x0@0x0 vmlinux(b504d96f81cd330b0c6a1bcf667c033e1ae1bb02)" + }, + { + "address": "0x0", + "lines": [ + "el0_svc_common.constprop.0[]@:0" + ], + "mapping": "0x0-0x0@0x0 vmlinux(b504d96f81cd330b0c6a1bcf667c033e1ae1bb02)" + }, + { + "address": "0x0", + "lines": [ + "do_el0_svc[]@:0" + ], + "mapping": "0x0-0x0@0x0 vmlinux(b504d96f81cd330b0c6a1bcf667c033e1ae1bb02)" + }, + { + "address": "0x0", + "lines": [ + "el0_svc[]@:0" + ], + "mapping": "0x0-0x0@0x0 vmlinux(b504d96f81cd330b0c6a1bcf667c033e1ae1bb02)" + }, + { + "address": "0x0", + "lines": [ + "el0t_64_sync_handler[]@:0" + ], + "mapping": "0x0-0x0@0x0 vmlinux(b504d96f81cd330b0c6a1bcf667c033e1ae1bb02)" + }, + { + "address": "0x0", + "lines": [ + "el0t_64_sync[]@:0" + ], + "mapping": "0x0-0x0@0x0 vmlinux(b504d96f81cd330b0c6a1bcf667c033e1ae1bb02)" + }, + { + "address": "0x0", + "lines": [ + "internal/runtime/syscall.Syscall6[]@/usr/local/go/src/internal/runtime/syscall/asm_linux_arm64.s:17" + ], + "mapping": "0x0-0x0@0x0 ()" + }, + { + "address": "0x0", + "lines": [ + "syscall.Syscall6[]@/usr/local/go/src/syscall/syscall_linux.go:96" + ], + "mapping": "0x0-0x0@0x0 ()" + }, + { + "address": "0x0", + "lines": [ + "syscall.Syscall6[]@\u003cautogenerated\u003e:1" + ], + "mapping": "0x0-0x0@0x0 ()" + }, + { + "address": "0x0", + "lines": [ + "golang.org/x/sys/unix.EpollWait[]@/agent/go/pkg/mod/golang.org/x/sys@v0.36.0/unix/zsyscall_linux_arm64.go:55" + ], + "mapping": "0x0-0x0@0x0 ()" + }, + { + "address": "0x0", + "lines": [ + "github.com/cilium/ebpf/internal/epoll.(*Poller).Wait[]@/agent/go/pkg/mod/github.com/cilium/ebpf@v0.19.0/internal/unix/types_linux.go:114" + ], + "mapping": "0x0-0x0@0x0 ()" + }, + { + "address": "0x0", + "lines": [ + "github.com/cilium/ebpf/perf.(*Reader).ReadInto[]@/agent/go/pkg/mod/github.com/cilium/ebpf@v0.19.0/perf/reader.go:367" + ], + "mapping": "0x0-0x0@0x0 ()" + }, + { + "address": "0x0", + "lines": [ + "go.opentelemetry.io/ebpf-profiler/tracer.startPerfEventMonitor.func1[]@/agent/tracer/events.go:105" + ], + "mapping": "0x0-0x0@0x0 ()" + }, + { + "address": "0x0", + "lines": [ + "runtime.goexit[]@/usr/local/go/src/runtime/asm_arm64.s:1224" + ], + "mapping": "0x0-0x0@0x0 ()" + } + ], + "values": "50000000" + }, + { + "locations": [ + { + "address": "0x0", + "lines": [ + "vm_normal_page[]@:0" + ], + "mapping": "0x0-0x0@0x0 vmlinux(b504d96f81cd330b0c6a1bcf667c033e1ae1bb02)" + }, + { + "address": "0x0", + "lines": [ + "zap_pte_range[]@:0" + ], + "mapping": "0x0-0x0@0x0 vmlinux(b504d96f81cd330b0c6a1bcf667c033e1ae1bb02)" + }, + { + "address": "0x0", + "lines": [ + "zap_pmd_range.isra.0[]@:0" + ], + "mapping": "0x0-0x0@0x0 vmlinux(b504d96f81cd330b0c6a1bcf667c033e1ae1bb02)" + }, + { + "address": "0x0", + "lines": [ + "unmap_page_range[]@:0" + ], + "mapping": "0x0-0x0@0x0 vmlinux(b504d96f81cd330b0c6a1bcf667c033e1ae1bb02)" + }, + { + "address": "0x0", + "lines": [ + "unmap_single_vma.isra.0[]@:0" + ], + "mapping": "0x0-0x0@0x0 vmlinux(b504d96f81cd330b0c6a1bcf667c033e1ae1bb02)" + }, + { + "address": "0x0", + "lines": [ + "zap_page_range_single[]@:0" + ], + "mapping": "0x0-0x0@0x0 vmlinux(b504d96f81cd330b0c6a1bcf667c033e1ae1bb02)" + }, + { + "address": "0x0", + "lines": [ + "madvise_vma_behavior[]@:0" + ], + "mapping": "0x0-0x0@0x0 vmlinux(b504d96f81cd330b0c6a1bcf667c033e1ae1bb02)" + }, + { + "address": "0x0", + "lines": [ + "madvise_do_behavior[]@:0" + ], + "mapping": "0x0-0x0@0x0 vmlinux(b504d96f81cd330b0c6a1bcf667c033e1ae1bb02)" + }, + { + "address": "0x0", + "lines": [ + "do_madvise[]@:0" + ], + "mapping": "0x0-0x0@0x0 vmlinux(b504d96f81cd330b0c6a1bcf667c033e1ae1bb02)" + }, + { + "address": "0x0", + "lines": [ + "__arm64_sys_madvise[]@:0" + ], + "mapping": "0x0-0x0@0x0 vmlinux(b504d96f81cd330b0c6a1bcf667c033e1ae1bb02)" + }, + { + "address": "0x0", + "lines": [ + "invoke_syscall.constprop.0[]@:0" + ], + "mapping": "0x0-0x0@0x0 vmlinux(b504d96f81cd330b0c6a1bcf667c033e1ae1bb02)" + }, + { + "address": "0x0", + "lines": [ + "el0_svc_common.constprop.0[]@:0" + ], + "mapping": "0x0-0x0@0x0 vmlinux(b504d96f81cd330b0c6a1bcf667c033e1ae1bb02)" + }, + { + "address": "0x0", + "lines": [ + "do_el0_svc[]@:0" + ], + "mapping": "0x0-0x0@0x0 vmlinux(b504d96f81cd330b0c6a1bcf667c033e1ae1bb02)" + }, + { + "address": "0x0", + "lines": [ + "el0_svc[]@:0" + ], + "mapping": "0x0-0x0@0x0 vmlinux(b504d96f81cd330b0c6a1bcf667c033e1ae1bb02)" + }, + { + "address": "0x0", + "lines": [ + "el0t_64_sync_handler[]@:0" + ], + "mapping": "0x0-0x0@0x0 vmlinux(b504d96f81cd330b0c6a1bcf667c033e1ae1bb02)" + }, + { + "address": "0x0", + "lines": [ + "el0t_64_sync[]@:0" + ], + "mapping": "0x0-0x0@0x0 vmlinux(b504d96f81cd330b0c6a1bcf667c033e1ae1bb02)" + }, + { + "address": "0x0", + "lines": [ + "runtime.madvise[]@/usr/local/go/src/runtime/sys_linux_arm64.s:638" + ], + "mapping": "0x0-0x0@0x0 ()" + }, + { + "address": "0x0", + "lines": [ + "runtime.(*pageAlloc).scavengeOne[]@/usr/local/go/src/runtime/mgcscavenge.go:782" + ], + "mapping": "0x0-0x0@0x0 ()" + }, + { + "address": "0x0", + "lines": [ + "runtime.(*pageAlloc).scavenge.func1[]@/usr/local/go/src/runtime/mgcscavenge.go:683" + ], + "mapping": "0x0-0x0@0x0 ()" + }, + { + "address": "0x0", + "lines": [ + "runtime.systemstack[]@/usr/local/go/src/runtime/asm_arm64.s:247" + ], + "mapping": "0x0-0x0@0x0 ()" + } + ], + "values": "50000000" + }, + { + "locations": [ + { + "address": "0x0", + "lines": [ + "handle_pte_fault[]@:0" + ], + "mapping": "0x0-0x0@0x0 vmlinux(b504d96f81cd330b0c6a1bcf667c033e1ae1bb02)" + }, + { + "address": "0x0", + "lines": [ + "__handle_mm_fault[]@:0" + ], + "mapping": "0x0-0x0@0x0 vmlinux(b504d96f81cd330b0c6a1bcf667c033e1ae1bb02)" + }, + { + "address": "0x0", + "lines": [ + "handle_mm_fault[]@:0" + ], + "mapping": "0x0-0x0@0x0 vmlinux(b504d96f81cd330b0c6a1bcf667c033e1ae1bb02)" + }, + { + "address": "0x0", + "lines": [ + "do_page_fault[]@:0" + ], + "mapping": "0x0-0x0@0x0 vmlinux(b504d96f81cd330b0c6a1bcf667c033e1ae1bb02)" + }, + { + "address": "0x0", + "lines": [ + "do_mem_abort[]@:0" + ], + "mapping": "0x0-0x0@0x0 vmlinux(b504d96f81cd330b0c6a1bcf667c033e1ae1bb02)" + }, + { + "address": "0x0", + "lines": [ + "el1_abort[]@:0" + ], + "mapping": "0x0-0x0@0x0 vmlinux(b504d96f81cd330b0c6a1bcf667c033e1ae1bb02)" + }, + { + "address": "0x0", + "lines": [ + "el1h_64_sync_handler[]@:0" + ], + "mapping": "0x0-0x0@0x0 vmlinux(b504d96f81cd330b0c6a1bcf667c033e1ae1bb02)" + }, + { + "address": "0x0", + "lines": [ + "el1h_64_sync[]@:0" + ], + "mapping": "0x0-0x0@0x0 vmlinux(b504d96f81cd330b0c6a1bcf667c033e1ae1bb02)" + }, + { + "address": "0x0", + "lines": [ + "clear_rseq_cs[]@:0" + ], + "mapping": "0x0-0x0@0x0 vmlinux(b504d96f81cd330b0c6a1bcf667c033e1ae1bb02)" + }, + { + "address": "0x0", + "lines": [ + "__rseq_handle_notify_resume[]@:0" + ], + "mapping": "0x0-0x0@0x0 vmlinux(b504d96f81cd330b0c6a1bcf667c033e1ae1bb02)" + }, + { + "address": "0x0", + "lines": [ + "do_notify_resume[]@:0" + ], + "mapping": "0x0-0x0@0x0 vmlinux(b504d96f81cd330b0c6a1bcf667c033e1ae1bb02)" + }, + { + "address": "0x0", + "lines": [ + "el0_svc[]@:0" + ], + "mapping": "0x0-0x0@0x0 vmlinux(b504d96f81cd330b0c6a1bcf667c033e1ae1bb02)" + }, + { + "address": "0x0", + "lines": [ + "el0t_64_sync_handler[]@:0" + ], + "mapping": "0x0-0x0@0x0 vmlinux(b504d96f81cd330b0c6a1bcf667c033e1ae1bb02)" + }, + { + "address": "0x0", + "lines": [ + "el0t_64_sync[]@:0" + ], + "mapping": "0x0-0x0@0x0 vmlinux(b504d96f81cd330b0c6a1bcf667c033e1ae1bb02)" + }, + { + "address": "0x7b6f7", + "lines": [ + "libc.so.6 0x7b6f7[]@:0" + ], + "mapping": "0x0-0x187000@0x0 libc.so.6(16e7fc798f754633a38d91ba09be84f8aa839464)" + }, + { + "address": "0x7e22f", + "lines": [ + "libc.so.6 0x7e22f[]@:0" + ], + "mapping": "0x0-0x187000@0x0 libc.so.6(16e7fc798f754633a38d91ba09be84f8aa839464)" + }, + { + "address": "0x1be681b", + "lines": [ + "node 0x1be681b[]@:0" + ], + "mapping": "0x400000-0x6489000@0x0 node(38e3105ad89c1d2089861ae3a00bf8fd946fa275)" + }, + { + "address": "0x1bd281b", + "lines": [ + "node 0x1bd281b[]@:0" + ], + "mapping": "0x400000-0x6489000@0x0 node(38e3105ad89c1d2089861ae3a00bf8fd946fa275)" + }, + { + "address": "0x7ee9f", + "lines": [ + "libc.so.6 0x7ee9f[]@:0" + ], + "mapping": "0x0-0x187000@0x0 libc.so.6(16e7fc798f754633a38d91ba09be84f8aa839464)" + }, + { + "address": "0xe7b1b", + "lines": [ + "libc.so.6 0xe7b1b[]@:0" + ], + "mapping": "0x0-0x187000@0x0 libc.so.6(16e7fc798f754633a38d91ba09be84f8aa839464)" + } + ], + "values": "50000000" + }, + { + "locations": [ + { + "address": "0x0", + "lines": [ + "go.opentelemetry.io/ebpf-profiler/nativeunwind/stackdeltatypes.(*StackDeltaArray).AddEx[]@/agent/nativeunwind/stackdeltatypes/stackdeltatypes.go:84" + ], + "mapping": "0x0-0x0@0x0 ()" + }, + { + "address": "0x0", + "lines": [ + "go.opentelemetry.io/ebpf-profiler/nativeunwind/elfunwindinfo.(*elfExtractor).parseFDE[]@/agent/nativeunwind/elfunwindinfo/elfehframe.go:997" + ], + "mapping": "0x0-0x0@0x0 ()" + }, + { + "address": "0x0", + "lines": [ + "go.opentelemetry.io/ebpf-profiler/nativeunwind/elfunwindinfo.(*elfExtractor).walkBinSearchTable[]@/agent/nativeunwind/elfunwindinfo/elfehframe.go:1183" + ], + "mapping": "0x0-0x0@0x0 ()" + }, + { + "address": "0x0", + "lines": [ + "go.opentelemetry.io/ebpf-profiler/nativeunwind/elfunwindinfo.(*elfExtractor).parseEHFrame[]@/agent/nativeunwind/elfunwindinfo/elfehframe.go:1238" + ], + "mapping": "0x0-0x0@0x0 ()" + }, + { + "address": "0x0", + "lines": [ + "go.opentelemetry.io/ebpf-profiler/nativeunwind/elfunwindinfo.extractFile[]@/agent/nativeunwind/elfunwindinfo/stackdeltaextraction.go:207" + ], + "mapping": "0x0-0x0@0x0 ()" + }, + { + "address": "0x0", + "lines": [ + "go.opentelemetry.io/ebpf-profiler/nativeunwind/elfunwindinfo.ExtractELF[]@/agent/nativeunwind/elfunwindinfo/stackdeltaextraction.go:180" + ], + "mapping": "0x0-0x0@0x0 ()" + }, + { + "address": "0x0", + "lines": [ + "go.opentelemetry.io/ebpf-profiler/nativeunwind/elfunwindinfo.(*ELFStackDeltaProvider).GetIntervalStructuresForFile[]@/agent/nativeunwind/elfunwindinfo/stackdeltaprovider.go:37" + ], + "mapping": "0x0-0x0@0x0 ()" + }, + { + "address": "0x0", + "lines": [ + "go.opentelemetry.io/ebpf-profiler/processmanager/execinfomanager.(*ExecutableInfoManager).AddOrIncRef[]@/agent/processmanager/execinfomanager/manager.go:187" + ], + "mapping": "0x0-0x0@0x0 ()" + }, + { + "address": "0x0", + "lines": [ + "go.opentelemetry.io/ebpf-profiler/processmanager.(*ProcessManager).handleNewMapping[]@/agent/processmanager/processinfo.go:290" + ], + "mapping": "0x0-0x0@0x0 ()" + }, + { + "address": "0x0", + "lines": [ + "go.opentelemetry.io/ebpf-profiler/processmanager.(*ProcessManager).processNewExecMapping[]@/agent/processmanager/processinfo.go:428" + ], + "mapping": "0x0-0x0@0x0 ()" + }, + { + "address": "0x0", + "lines": [ + "go.opentelemetry.io/ebpf-profiler/processmanager.(*ProcessManager).synchronizeMappings[]@/agent/processmanager/processinfo.go:536" + ], + "mapping": "0x0-0x0@0x0 ()" + }, + { + "address": "0x0", + "lines": [ + "go.opentelemetry.io/ebpf-profiler/processmanager.(*ProcessManager).SynchronizeProcess[]@/agent/processmanager/processinfo.go:673" + ], + "mapping": "0x0-0x0@0x0 ()" + }, + { + "address": "0x0", + "lines": [ + "go.opentelemetry.io/ebpf-profiler/tracer.(*Tracer).processPIDEvents[]@/agent/tracer/events.go:50" + ], + "mapping": "0x0-0x0@0x0 ()" + }, + { + "address": "0x0", + "lines": [ + "go.opentelemetry.io/ebpf-profiler/tracer.(*Tracer).StartPIDEventProcessor.gowrap1[]@/agent/tracer/events.go:41" + ], + "mapping": "0x0-0x0@0x0 ()" + }, + { + "address": "0x0", + "lines": [ + "runtime.goexit[]@/usr/local/go/src/runtime/asm_arm64.s:1224" + ], + "mapping": "0x0-0x0@0x0 ()" + } + ], + "values": "50000000" + }, + { + "locations": [ + { + "address": "0x0", + "lines": [ + "finish_task_switch.isra.0[]@:0" + ], + "mapping": "0x0-0x0@0x0 vmlinux(b504d96f81cd330b0c6a1bcf667c033e1ae1bb02)" + }, + { + "address": "0x0", + "lines": [ + "__schedule[]@:0" + ], + "mapping": "0x0-0x0@0x0 vmlinux(b504d96f81cd330b0c6a1bcf667c033e1ae1bb02)" + }, + { + "address": "0x0", + "lines": [ + "schedule[]@:0" + ], + "mapping": "0x0-0x0@0x0 vmlinux(b504d96f81cd330b0c6a1bcf667c033e1ae1bb02)" + }, + { + "address": "0x0", + "lines": [ + "futex_wait_queue[]@:0" + ], + "mapping": "0x0-0x0@0x0 vmlinux(b504d96f81cd330b0c6a1bcf667c033e1ae1bb02)" + }, + { + "address": "0x0", + "lines": [ + "__futex_wait[]@:0" + ], + "mapping": "0x0-0x0@0x0 vmlinux(b504d96f81cd330b0c6a1bcf667c033e1ae1bb02)" + }, + { + "address": "0x0", + "lines": [ + "futex_wait[]@:0" + ], + "mapping": "0x0-0x0@0x0 vmlinux(b504d96f81cd330b0c6a1bcf667c033e1ae1bb02)" + }, + { + "address": "0x0", + "lines": [ + "do_futex[]@:0" + ], + "mapping": "0x0-0x0@0x0 vmlinux(b504d96f81cd330b0c6a1bcf667c033e1ae1bb02)" + }, + { + "address": "0x0", + "lines": [ + "__arm64_sys_futex[]@:0" + ], + "mapping": "0x0-0x0@0x0 vmlinux(b504d96f81cd330b0c6a1bcf667c033e1ae1bb02)" + }, + { + "address": "0x0", + "lines": [ + "invoke_syscall.constprop.0[]@:0" + ], + "mapping": "0x0-0x0@0x0 vmlinux(b504d96f81cd330b0c6a1bcf667c033e1ae1bb02)" + }, + { + "address": "0x0", + "lines": [ + "el0_svc_common.constprop.0[]@:0" + ], + "mapping": "0x0-0x0@0x0 vmlinux(b504d96f81cd330b0c6a1bcf667c033e1ae1bb02)" + }, + { + "address": "0x0", + "lines": [ + "do_el0_svc[]@:0" + ], + "mapping": "0x0-0x0@0x0 vmlinux(b504d96f81cd330b0c6a1bcf667c033e1ae1bb02)" + }, + { + "address": "0x0", + "lines": [ + "el0_svc[]@:0" + ], + "mapping": "0x0-0x0@0x0 vmlinux(b504d96f81cd330b0c6a1bcf667c033e1ae1bb02)" + }, + { + "address": "0x0", + "lines": [ + "el0t_64_sync_handler[]@:0" + ], + "mapping": "0x0-0x0@0x0 vmlinux(b504d96f81cd330b0c6a1bcf667c033e1ae1bb02)" + }, + { + "address": "0x0", + "lines": [ + "el0t_64_sync[]@:0" + ], + "mapping": "0x0-0x0@0x0 vmlinux(b504d96f81cd330b0c6a1bcf667c033e1ae1bb02)" + }, + { + "address": "0x7b6f7", + "lines": [ + "libc.so.6 0x7b6f7[]@:0" + ], + "mapping": "0x0-0x187000@0x0 libc.so.6(16e7fc798f754633a38d91ba09be84f8aa839464)" + }, + { + "address": "0x7e22f", + "lines": [ + "libc.so.6 0x7e22f[]@:0" + ], + "mapping": "0x0-0x187000@0x0 libc.so.6(16e7fc798f754633a38d91ba09be84f8aa839464)" + }, + { + "address": "0x1be681b", + "lines": [ + "node 0x1be681b[]@:0" + ], + "mapping": "0x400000-0x6489000@0x0 node(38e3105ad89c1d2089861ae3a00bf8fd946fa275)" + }, + { + "address": "0x1bd281b", + "lines": [ + "node 0x1bd281b[]@:0" + ], + "mapping": "0x400000-0x6489000@0x0 node(38e3105ad89c1d2089861ae3a00bf8fd946fa275)" + }, + { + "address": "0x7ee9f", + "lines": [ + "libc.so.6 0x7ee9f[]@:0" + ], + "mapping": "0x0-0x187000@0x0 libc.so.6(16e7fc798f754633a38d91ba09be84f8aa839464)" + }, + { + "address": "0xe7b1b", + "lines": [ + "libc.so.6 0xe7b1b[]@:0" + ], + "mapping": "0x0-0x187000@0x0 libc.so.6(16e7fc798f754633a38d91ba09be84f8aa839464)" + } + ], + "values": "50000000" + }, + { + "locations": [ + { + "address": "0x0", + "lines": [ + "z[]@file:///vscode/vscode-server/bin/linux-arm64/f220831ea2d946c0dcb0f3eaa480eb435a2c1260/out/vs/workbench/api/node/extensionHostProcess.js:29" + ], + "mapping": "0x0-0x0@0x0 ()" + }, + { + "address": "0x0", + "lines": [ + "acceptFrame[]@file:///vscode/vscode-server/bin/linux-arm64/f220831ea2d946c0dcb0f3eaa480eb435a2c1260/out/vs/workbench/api/node/extensionHostProcess.js:29" + ], + "mapping": "0x0-0x0@0x0 ()" + }, + { + "address": "0x0", + "lines": [ + "n[]@file:///vscode/vscode-server/bin/linux-arm64/f220831ea2d946c0dcb0f3eaa480eb435a2c1260/out/vs/workbench/api/node/extensionHostProcess.js:29" + ], + "mapping": "0x0-0x0@0x0 ()" + }, + { + "address": "0x0", + "lines": [ + "\u003canonymous\u003e[]@file:///vscode/vscode-server/bin/linux-arm64/f220831ea2d946c0dcb0f3eaa480eb435a2c1260/out/vs/workbench/api/node/extensionHostProcess.js:29" + ], + "mapping": "0x0-0x0@0x0 ()" + }, + { + "address": "0x0", + "lines": [ + "t[]@file:///vscode/vscode-server/bin/linux-arm64/f220831ea2d946c0dcb0f3eaa480eb435a2c1260/out/vs/workbench/api/node/extensionHostProcess.js:29" + ], + "mapping": "0x0-0x0@0x0 ()" + }, + { + "address": "0x0", + "lines": [ + "emit[]@node:events:518" + ], + "mapping": "0x0-0x0@0x0 ()" + }, + { + "address": "0x0", + "lines": [ + "addChunk[]@node:internal/streams/readable:561" + ], + "mapping": "0x0-0x0@0x0 ()" + }, + { + "address": "0x0", + "lines": [ + "readableAddChunkPushByteMode[]@node:internal/streams/readable:512" + ], + "mapping": "0x0-0x0@0x0 ()" + }, + { + "address": "0x0", + "lines": [ + "Readable.push[]@node:internal/streams/readable:392" + ], + "mapping": "0x0-0x0@0x0 ()" + }, + { + "address": "0x0", + "lines": [ + "onStreamRead[]@node:internal/stream_base_commons:166" + ], + "mapping": "0x0-0x0@0x0 ()" + }, + { + "address": "0x0", + "lines": [ + "V8::InternalFrame[]@:0" + ], + "mapping": "0x0-0x0@0x0 ()" + }, + { + "address": "0x0", + "lines": [ + "V8::EntryFrame[]@:0" + ], + "mapping": "0x0-0x0@0x0 ()" + }, + { + "address": "0x12d9303", + "lines": [ + "node 0x12d9303[]@:0" + ], + "mapping": "0x400000-0x6489000@0x0 node(38e3105ad89c1d2089861ae3a00bf8fd946fa275)" + }, + { + "address": "0x12da0cb", + "lines": [ + "node 0x12da0cb[]@:0" + ], + "mapping": "0x400000-0x6489000@0x0 node(38e3105ad89c1d2089861ae3a00bf8fd946fa275)" + }, + { + "address": "0x118d1a7", + "lines": [ + "node 0x118d1a7[]@:0" + ], + "mapping": "0x400000-0x6489000@0x0 node(38e3105ad89c1d2089861ae3a00bf8fd946fa275)" + }, + { + "address": "0xe276ab", + "lines": [ + "node 0xe276ab[]@:0" + ], + "mapping": "0x400000-0x6489000@0x0 node(38e3105ad89c1d2089861ae3a00bf8fd946fa275)" + }, + { + "address": "0xe421ef", + "lines": [ + "node 0xe421ef[]@:0" + ], + "mapping": "0x400000-0x6489000@0x0 node(38e3105ad89c1d2089861ae3a00bf8fd946fa275)" + }, + { + "address": "0x10686e7", + "lines": [ + "node 0x10686e7[]@:0" + ], + "mapping": "0x400000-0x6489000@0x0 node(38e3105ad89c1d2089861ae3a00bf8fd946fa275)" + }, + { + "address": "0x1068abf", + "lines": [ + "node 0x1068abf[]@:0" + ], + "mapping": "0x400000-0x6489000@0x0 node(38e3105ad89c1d2089861ae3a00bf8fd946fa275)" + }, + { + "address": "0x107024f", + "lines": [ + "node 0x107024f[]@:0" + ], + "mapping": "0x400000-0x6489000@0x0 node(38e3105ad89c1d2089861ae3a00bf8fd946fa275)" + }, + { + "address": "0x1070607", + "lines": [ + "node 0x1070607[]@:0" + ], + "mapping": "0x400000-0x6489000@0x0 node(38e3105ad89c1d2089861ae3a00bf8fd946fa275)" + }, + { + "address": "0x1be3863", + "lines": [ + "node 0x1be3863[]@:0" + ], + "mapping": "0x400000-0x6489000@0x0 node(38e3105ad89c1d2089861ae3a00bf8fd946fa275)" + }, + { + "address": "0x1be3c1b", + "lines": [ + "node 0x1be3c1b[]@:0" + ], + "mapping": "0x400000-0x6489000@0x0 node(38e3105ad89c1d2089861ae3a00bf8fd946fa275)" + }, + { + "address": "0x1bec813", + "lines": [ + "node 0x1bec813[]@:0" + ], + "mapping": "0x400000-0x6489000@0x0 node(38e3105ad89c1d2089861ae3a00bf8fd946fa275)" + }, + { + "address": "0x1bd7acb", + "lines": [ + "node 0x1bd7acb[]@:0" + ], + "mapping": "0x400000-0x6489000@0x0 node(38e3105ad89c1d2089861ae3a00bf8fd946fa275)" + }, + { + "address": "0xe2863f", + "lines": [ + "node 0xe2863f[]@:0" + ], + "mapping": "0x400000-0x6489000@0x0 node(38e3105ad89c1d2089861ae3a00bf8fd946fa275)" + }, + { + "address": "0xf75d27", + "lines": [ + "node 0xf75d27[]@:0" + ], + "mapping": "0x400000-0x6489000@0x0 node(38e3105ad89c1d2089861ae3a00bf8fd946fa275)" + }, + { + "address": "0xedc6e3", + "lines": [ + "node 0xedc6e3[]@:0" + ], + "mapping": "0x400000-0x6489000@0x0 node(38e3105ad89c1d2089861ae3a00bf8fd946fa275)" + }, + { + "address": "0x2773f", + "lines": [ + "libc.so.6 0x2773f[]@:0" + ], + "mapping": "0x0-0x187000@0x0 libc.so.6(16e7fc798f754633a38d91ba09be84f8aa839464)" + }, + { + "address": "0x27817", + "lines": [ + "libc.so.6 0x27817[]@:0" + ], + "mapping": "0x0-0x187000@0x0 libc.so.6(16e7fc798f754633a38d91ba09be84f8aa839464)" + }, + { + "address": "0xe25e6f", + "lines": [ + "node 0xe25e6f[]@:0" + ], + "mapping": "0x400000-0x6489000@0x0 node(38e3105ad89c1d2089861ae3a00bf8fd946fa275)" + } + ], + "values": "50000000" + }, + { + "locations": [ + { + "address": "0x0", + "lines": [ + "try_charge_memcg[]@:0" + ], + "mapping": "0x0-0x0@0x0 vmlinux(b504d96f81cd330b0c6a1bcf667c033e1ae1bb02)" + }, + { + "address": "0x0", + "lines": [ + "mem_cgroup_charge_skmem[]@:0" + ], + "mapping": "0x0-0x0@0x0 vmlinux(b504d96f81cd330b0c6a1bcf667c033e1ae1bb02)" + }, + { + "address": "0x0", + "lines": [ + "sk_forced_mem_schedule[]@:0" + ], + "mapping": "0x0-0x0@0x0 vmlinux(b504d96f81cd330b0c6a1bcf667c033e1ae1bb02)" + }, + { + "address": "0x0", + "lines": [ + "tcp_stream_alloc_skb[]@:0" + ], + "mapping": "0x0-0x0@0x0 vmlinux(b504d96f81cd330b0c6a1bcf667c033e1ae1bb02)" + }, + { + "address": "0x0", + "lines": [ + "tcp_sendmsg_locked[]@:0" + ], + "mapping": "0x0-0x0@0x0 vmlinux(b504d96f81cd330b0c6a1bcf667c033e1ae1bb02)" + }, + { + "address": "0x0", + "lines": [ + "tcp_sendmsg[]@:0" + ], + "mapping": "0x0-0x0@0x0 vmlinux(b504d96f81cd330b0c6a1bcf667c033e1ae1bb02)" + }, + { + "address": "0x0", + "lines": [ + "inet_sendmsg[]@:0" + ], + "mapping": "0x0-0x0@0x0 vmlinux(b504d96f81cd330b0c6a1bcf667c033e1ae1bb02)" + }, + { + "address": "0x0", + "lines": [ + "__sock_sendmsg[]@:0" + ], + "mapping": "0x0-0x0@0x0 vmlinux(b504d96f81cd330b0c6a1bcf667c033e1ae1bb02)" + }, + { + "address": "0x0", + "lines": [ + "sock_write_iter[]@:0" + ], + "mapping": "0x0-0x0@0x0 vmlinux(b504d96f81cd330b0c6a1bcf667c033e1ae1bb02)" + }, + { + "address": "0x0", + "lines": [ + "vfs_write[]@:0" + ], + "mapping": "0x0-0x0@0x0 vmlinux(b504d96f81cd330b0c6a1bcf667c033e1ae1bb02)" + }, + { + "address": "0x0", + "lines": [ + "ksys_write[]@:0" + ], + "mapping": "0x0-0x0@0x0 vmlinux(b504d96f81cd330b0c6a1bcf667c033e1ae1bb02)" + }, + { + "address": "0x0", + "lines": [ + "__arm64_sys_write[]@:0" + ], + "mapping": "0x0-0x0@0x0 vmlinux(b504d96f81cd330b0c6a1bcf667c033e1ae1bb02)" + }, + { + "address": "0x0", + "lines": [ + "invoke_syscall.constprop.0[]@:0" + ], + "mapping": "0x0-0x0@0x0 vmlinux(b504d96f81cd330b0c6a1bcf667c033e1ae1bb02)" + }, + { + "address": "0x0", + "lines": [ + "el0_svc_common.constprop.0[]@:0" + ], + "mapping": "0x0-0x0@0x0 vmlinux(b504d96f81cd330b0c6a1bcf667c033e1ae1bb02)" + }, + { + "address": "0x0", + "lines": [ + "do_el0_svc[]@:0" + ], + "mapping": "0x0-0x0@0x0 vmlinux(b504d96f81cd330b0c6a1bcf667c033e1ae1bb02)" + }, + { + "address": "0x0", + "lines": [ + "el0_svc[]@:0" + ], + "mapping": "0x0-0x0@0x0 vmlinux(b504d96f81cd330b0c6a1bcf667c033e1ae1bb02)" + }, + { + "address": "0x0", + "lines": [ + "el0t_64_sync_handler[]@:0" + ], + "mapping": "0x0-0x0@0x0 vmlinux(b504d96f81cd330b0c6a1bcf667c033e1ae1bb02)" + }, + { + "address": "0x0", + "lines": [ + "el0t_64_sync[]@:0" + ], + "mapping": "0x0-0x0@0x0 vmlinux(b504d96f81cd330b0c6a1bcf667c033e1ae1bb02)" + }, + { + "address": "0xd9afb", + "lines": [ + "libc.so.6 0xd9afb[]@:0" + ], + "mapping": "0x0-0x187000@0x0 libc.so.6(16e7fc798f754633a38d91ba09be84f8aa839464)" + }, + { + "address": "0x1be3097", + "lines": [ + "node 0x1be3097[]@:0" + ], + "mapping": "0x400000-0x6489000@0x0 node(38e3105ad89c1d2089861ae3a00bf8fd946fa275)" + }, + { + "address": "0x106fd63", + "lines": [ + "node 0x106fd63[]@:0" + ], + "mapping": "0x400000-0x6489000@0x0 node(38e3105ad89c1d2089861ae3a00bf8fd946fa275)" + }, + { + "address": "0x10681bf", + "lines": [ + "node 0x10681bf[]@:0" + ], + "mapping": "0x400000-0x6489000@0x0 node(38e3105ad89c1d2089861ae3a00bf8fd946fa275)" + }, + { + "address": "0x106a083", + "lines": [ + "node 0x106a083[]@:0" + ], + "mapping": "0x400000-0x6489000@0x0 node(38e3105ad89c1d2089861ae3a00bf8fd946fa275)" + }, + { + "address": "0x106ceef", + "lines": [ + "node 0x106ceef[]@:0" + ], + "mapping": "0x400000-0x6489000@0x0 node(38e3105ad89c1d2089861ae3a00bf8fd946fa275)" + }, + { + "address": "0x0", + "lines": [ + "V8::ExitFrame[]@:0" + ], + "mapping": "0x0-0x0@0x0 ()" + }, + { + "address": "0x0", + "lines": [ + "handleWriteReq[]@node:internal/stream_base_commons:0" + ], + "mapping": "0x0-0x0@0x0 ()" + }, + { + "address": "0x0", + "lines": [ + "writeGeneric[]@node:internal/stream_base_commons:0" + ], + "mapping": "0x0-0x0@0x0 ()" + }, + { + "address": "0x0", + "lines": [ + "Socket._writeGeneric[]@node:net:0" + ], + "mapping": "0x0-0x0@0x0 ()" + }, + { + "address": "0x0", + "lines": [ + "Socket._write[]@node:net:0" + ], + "mapping": "0x0-0x0@0x0 ()" + }, + { + "address": "0x0", + "lines": [ + "writeOrBuffer[]@node:internal/streams/writable:0" + ], + "mapping": "0x0-0x0@0x0 ()" + }, + { + "address": "0x0", + "lines": [ + "_write[]@node:internal/streams/writable:0" + ], + "mapping": "0x0-0x0@0x0 ()" + }, + { + "address": "0x0", + "lines": [ + "Writable.write[]@node:internal/streams/writable:0" + ], + "mapping": "0x0-0x0@0x0 ()" + }, + { + "address": "0x0", + "lines": [ + "ondata[]@node:internal/streams/readable:0" + ], + "mapping": "0x0-0x0@0x0 ()" + }, + { + "address": "0x0", + "lines": [ + "emit[]@node:events:0" + ], + "mapping": "0x0-0x0@0x0 ()" + }, + { + "address": "0x0", + "lines": [ + "addChunk[]@node:internal/streams/readable:0" + ], + "mapping": "0x0-0x0@0x0 ()" + }, + { + "address": "0x0", + "lines": [ + "readableAddChunkPushByteMode[]@node:internal/streams/readable:0" + ], + "mapping": "0x0-0x0@0x0 ()" + }, + { + "address": "0x0", + "lines": [ + "Readable.push[]@node:internal/streams/readable:0" + ], + "mapping": "0x0-0x0@0x0 ()" + }, + { + "address": "0x0", + "lines": [ + "onStreamRead[]@node:internal/stream_base_commons:0" + ], + "mapping": "0x0-0x0@0x0 ()" + }, + { + "address": "0x0", + "lines": [ + "V8::InternalFrame[]@:0" + ], + "mapping": "0x0-0x0@0x0 ()" + }, + { + "address": "0x0", + "lines": [ + "V8::EntryFrame[]@:0" + ], + "mapping": "0x0-0x0@0x0 ()" + }, + { + "address": "0x12d9303", + "lines": [ + "node 0x12d9303[]@:0" + ], + "mapping": "0x400000-0x6489000@0x0 node(38e3105ad89c1d2089861ae3a00bf8fd946fa275)" + }, + { + "address": "0x12da0cb", + "lines": [ + "node 0x12da0cb[]@:0" + ], + "mapping": "0x400000-0x6489000@0x0 node(38e3105ad89c1d2089861ae3a00bf8fd946fa275)" + }, + { + "address": "0x118d1a7", + "lines": [ + "node 0x118d1a7[]@:0" + ], + "mapping": "0x400000-0x6489000@0x0 node(38e3105ad89c1d2089861ae3a00bf8fd946fa275)" + }, + { + "address": "0xe276ab", + "lines": [ + "node 0xe276ab[]@:0" + ], + "mapping": "0x400000-0x6489000@0x0 node(38e3105ad89c1d2089861ae3a00bf8fd946fa275)" + }, + { + "address": "0xe421ef", + "lines": [ + "node 0xe421ef[]@:0" + ], + "mapping": "0x400000-0x6489000@0x0 node(38e3105ad89c1d2089861ae3a00bf8fd946fa275)" + }, + { + "address": "0x10686e7", + "lines": [ + "node 0x10686e7[]@:0" + ], + "mapping": "0x400000-0x6489000@0x0 node(38e3105ad89c1d2089861ae3a00bf8fd946fa275)" + }, + { + "address": "0x1068abf", + "lines": [ + "node 0x1068abf[]@:0" + ], + "mapping": "0x400000-0x6489000@0x0 node(38e3105ad89c1d2089861ae3a00bf8fd946fa275)" + }, + { + "address": "0x107024f", + "lines": [ + "node 0x107024f[]@:0" + ], + "mapping": "0x400000-0x6489000@0x0 node(38e3105ad89c1d2089861ae3a00bf8fd946fa275)" + }, + { + "address": "0x1070607", + "lines": [ + "node 0x1070607[]@:0" + ], + "mapping": "0x400000-0x6489000@0x0 node(38e3105ad89c1d2089861ae3a00bf8fd946fa275)" + }, + { + "address": "0x1be3863", + "lines": [ + "node 0x1be3863[]@:0" + ], + "mapping": "0x400000-0x6489000@0x0 node(38e3105ad89c1d2089861ae3a00bf8fd946fa275)" + }, + { + "address": "0x1be3c1b", + "lines": [ + "node 0x1be3c1b[]@:0" + ], + "mapping": "0x400000-0x6489000@0x0 node(38e3105ad89c1d2089861ae3a00bf8fd946fa275)" + }, + { + "address": "0x1bec813", + "lines": [ + "node 0x1bec813[]@:0" + ], + "mapping": "0x400000-0x6489000@0x0 node(38e3105ad89c1d2089861ae3a00bf8fd946fa275)" + }, + { + "address": "0x1bd7acb", + "lines": [ + "node 0x1bd7acb[]@:0" + ], + "mapping": "0x400000-0x6489000@0x0 node(38e3105ad89c1d2089861ae3a00bf8fd946fa275)" + }, + { + "address": "0xe2863f", + "lines": [ + "node 0xe2863f[]@:0" + ], + "mapping": "0x400000-0x6489000@0x0 node(38e3105ad89c1d2089861ae3a00bf8fd946fa275)" + }, + { + "address": "0xf75d27", + "lines": [ + "node 0xf75d27[]@:0" + ], + "mapping": "0x400000-0x6489000@0x0 node(38e3105ad89c1d2089861ae3a00bf8fd946fa275)" + }, + { + "address": "0xedc6e3", + "lines": [ + "node 0xedc6e3[]@:0" + ], + "mapping": "0x400000-0x6489000@0x0 node(38e3105ad89c1d2089861ae3a00bf8fd946fa275)" + }, + { + "address": "0x2773f", + "lines": [ + "libc.so.6 0x2773f[]@:0" + ], + "mapping": "0x0-0x187000@0x0 libc.so.6(16e7fc798f754633a38d91ba09be84f8aa839464)" + }, + { + "address": "0x27817", + "lines": [ + "libc.so.6 0x27817[]@:0" + ], + "mapping": "0x0-0x187000@0x0 libc.so.6(16e7fc798f754633a38d91ba09be84f8aa839464)" + }, + { + "address": "0xe25e6f", + "lines": [ + "node 0xe25e6f[]@:0" + ], + "mapping": "0x400000-0x6489000@0x0 node(38e3105ad89c1d2089861ae3a00bf8fd946fa275)" + } + ], + "values": "50000000" + }, + { + "locations": [ + { + "address": "0x0", + "lines": [ + "__ptep_set_access_flags[]@:0" + ], + "mapping": "0x0-0x0@0x0 vmlinux(b504d96f81cd330b0c6a1bcf667c033e1ae1bb02)" + }, + { + "address": "0x0", + "lines": [ + "wp_page_reuse[]@:0" + ], + "mapping": "0x0-0x0@0x0 vmlinux(b504d96f81cd330b0c6a1bcf667c033e1ae1bb02)" + }, + { + "address": "0x0", + "lines": [ + "do_wp_page[]@:0" + ], + "mapping": "0x0-0x0@0x0 vmlinux(b504d96f81cd330b0c6a1bcf667c033e1ae1bb02)" + }, + { + "address": "0x0", + "lines": [ + "handle_pte_fault[]@:0" + ], + "mapping": "0x0-0x0@0x0 vmlinux(b504d96f81cd330b0c6a1bcf667c033e1ae1bb02)" + }, + { + "address": "0x0", + "lines": [ + "__handle_mm_fault[]@:0" + ], + "mapping": "0x0-0x0@0x0 vmlinux(b504d96f81cd330b0c6a1bcf667c033e1ae1bb02)" + }, + { + "address": "0x0", + "lines": [ + "handle_mm_fault[]@:0" + ], + "mapping": "0x0-0x0@0x0 vmlinux(b504d96f81cd330b0c6a1bcf667c033e1ae1bb02)" + }, + { + "address": "0x0", + "lines": [ + "do_page_fault[]@:0" + ], + "mapping": "0x0-0x0@0x0 vmlinux(b504d96f81cd330b0c6a1bcf667c033e1ae1bb02)" + }, + { + "address": "0x0", + "lines": [ + "do_mem_abort[]@:0" + ], + "mapping": "0x0-0x0@0x0 vmlinux(b504d96f81cd330b0c6a1bcf667c033e1ae1bb02)" + }, + { + "address": "0x0", + "lines": [ + "el0_da[]@:0" + ], + "mapping": "0x0-0x0@0x0 vmlinux(b504d96f81cd330b0c6a1bcf667c033e1ae1bb02)" + }, + { + "address": "0x0", + "lines": [ + "el0t_64_sync_handler[]@:0" + ], + "mapping": "0x0-0x0@0x0 vmlinux(b504d96f81cd330b0c6a1bcf667c033e1ae1bb02)" + }, + { + "address": "0x0", + "lines": [ + "el0t_64_sync[]@:0" + ], + "mapping": "0x0-0x0@0x0 vmlinux(b504d96f81cd330b0c6a1bcf667c033e1ae1bb02)" + }, + { + "address": "0x2db3db0", + "lines": [ + "node 0x2db3db0[]@:0" + ], + "mapping": "0x400000-0x6489000@0x0 node(38e3105ad89c1d2089861ae3a00bf8fd946fa275)" + }, + { + "address": "0x1325af3", + "lines": [ + "node 0x1325af3[]@:0" + ], + "mapping": "0x400000-0x6489000@0x0 node(38e3105ad89c1d2089861ae3a00bf8fd946fa275)" + }, + { + "address": "0x1325bd7", + "lines": [ + "node 0x1325bd7[]@:0" + ], + "mapping": "0x400000-0x6489000@0x0 node(38e3105ad89c1d2089861ae3a00bf8fd946fa275)" + }, + { + "address": "0x1325e7b", + "lines": [ + "node 0x1325e7b[]@:0" + ], + "mapping": "0x400000-0x6489000@0x0 node(38e3105ad89c1d2089861ae3a00bf8fd946fa275)" + }, + { + "address": "0x13261b3", + "lines": [ + "node 0x13261b3[]@:0" + ], + "mapping": "0x400000-0x6489000@0x0 node(38e3105ad89c1d2089861ae3a00bf8fd946fa275)" + }, + { + "address": "0xfa95ab", + "lines": [ + "node 0xfa95ab[]@:0" + ], + "mapping": "0x400000-0x6489000@0x0 node(38e3105ad89c1d2089861ae3a00bf8fd946fa275)" + }, + { + "address": "0x7ee9f", + "lines": [ + "libc.so.6 0x7ee9f[]@:0" + ], + "mapping": "0x0-0x187000@0x0 libc.so.6(16e7fc798f754633a38d91ba09be84f8aa839464)" + }, + { + "address": "0x7ee9f", + "lines": [ + "libc.so.6 0x7ee9f[]@:0" + ], + "mapping": "0x0-0x187000@0x0 libc.so.6(16e7fc798f754633a38d91ba09be84f8aa839464)" + }, + { + "address": "0xe7b1b", + "lines": [ + "libc.so.6 0xe7b1b[]@:0" + ], + "mapping": "0x0-0x187000@0x0 libc.so.6(16e7fc798f754633a38d91ba09be84f8aa839464)" + } + ], + "values": "50000000" + }, + { + "locations": [ + { + "address": "0x0", + "lines": [ + "\u003canonymous\u003e[]@file:///vscode/vscode-server/bin/linux-arm64/f220831ea2d946c0dcb0f3eaa480eb435a2c1260/out/vs/workbench/api/node/extensionHostProcess.js:29" + ], + "mapping": "0x0-0x0@0x0 ()" + }, + { + "address": "0x0", + "lines": [ + "C[]@file:///vscode/vscode-server/bin/linux-arm64/f220831ea2d946c0dcb0f3eaa480eb435a2c1260/out/vs/workbench/api/node/extensionHostProcess.js:27" + ], + "mapping": "0x0-0x0@0x0 ()" + }, + { + "address": "0x0", + "lines": [ + "fire[]@file:///vscode/vscode-server/bin/linux-arm64/f220831ea2d946c0dcb0f3eaa480eb435a2c1260/out/vs/workbench/api/node/extensionHostProcess.js:27" + ], + "mapping": "0x0-0x0@0x0 ()" + }, + { + "address": "0x0", + "lines": [ + "z[]@file:///vscode/vscode-server/bin/linux-arm64/f220831ea2d946c0dcb0f3eaa480eb435a2c1260/out/vs/workbench/api/node/extensionHostProcess.js:29" + ], + "mapping": "0x0-0x0@0x0 ()" + }, + { + "address": "0x0", + "lines": [ + "acceptFrame[]@file:///vscode/vscode-server/bin/linux-arm64/f220831ea2d946c0dcb0f3eaa480eb435a2c1260/out/vs/workbench/api/node/extensionHostProcess.js:29" + ], + "mapping": "0x0-0x0@0x0 ()" + }, + { + "address": "0x0", + "lines": [ + "n[]@file:///vscode/vscode-server/bin/linux-arm64/f220831ea2d946c0dcb0f3eaa480eb435a2c1260/out/vs/workbench/api/node/extensionHostProcess.js:29" + ], + "mapping": "0x0-0x0@0x0 ()" + }, + { + "address": "0x0", + "lines": [ + "\u003canonymous\u003e[]@file:///vscode/vscode-server/bin/linux-arm64/f220831ea2d946c0dcb0f3eaa480eb435a2c1260/out/vs/workbench/api/node/extensionHostProcess.js:29" + ], + "mapping": "0x0-0x0@0x0 ()" + }, + { + "address": "0x0", + "lines": [ + "t[]@file:///vscode/vscode-server/bin/linux-arm64/f220831ea2d946c0dcb0f3eaa480eb435a2c1260/out/vs/workbench/api/node/extensionHostProcess.js:29" + ], + "mapping": "0x0-0x0@0x0 ()" + }, + { + "address": "0x0", + "lines": [ + "emit[]@node:events:518" + ], + "mapping": "0x0-0x0@0x0 ()" + }, + { + "address": "0x0", + "lines": [ + "addChunk[]@node:internal/streams/readable:561" + ], + "mapping": "0x0-0x0@0x0 ()" + }, + { + "address": "0x0", + "lines": [ + "readableAddChunkPushByteMode[]@node:internal/streams/readable:512" + ], + "mapping": "0x0-0x0@0x0 ()" + }, + { + "address": "0x0", + "lines": [ + "Readable.push[]@node:internal/streams/readable:392" + ], + "mapping": "0x0-0x0@0x0 ()" + }, + { + "address": "0x0", + "lines": [ + "onStreamRead[]@node:internal/stream_base_commons:166" + ], + "mapping": "0x0-0x0@0x0 ()" + }, + { + "address": "0x0", + "lines": [ + "V8::InternalFrame[]@:0" + ], + "mapping": "0x0-0x0@0x0 ()" + }, + { + "address": "0x0", + "lines": [ + "V8::EntryFrame[]@:0" + ], + "mapping": "0x0-0x0@0x0 ()" + }, + { + "address": "0x12d9303", + "lines": [ + "node 0x12d9303[]@:0" + ], + "mapping": "0x400000-0x6489000@0x0 node(38e3105ad89c1d2089861ae3a00bf8fd946fa275)" + }, + { + "address": "0x12da0cb", + "lines": [ + "node 0x12da0cb[]@:0" + ], + "mapping": "0x400000-0x6489000@0x0 node(38e3105ad89c1d2089861ae3a00bf8fd946fa275)" + }, + { + "address": "0x118d1a7", + "lines": [ + "node 0x118d1a7[]@:0" + ], + "mapping": "0x400000-0x6489000@0x0 node(38e3105ad89c1d2089861ae3a00bf8fd946fa275)" + }, + { + "address": "0xe276ab", + "lines": [ + "node 0xe276ab[]@:0" + ], + "mapping": "0x400000-0x6489000@0x0 node(38e3105ad89c1d2089861ae3a00bf8fd946fa275)" + }, + { + "address": "0xe421ef", + "lines": [ + "node 0xe421ef[]@:0" + ], + "mapping": "0x400000-0x6489000@0x0 node(38e3105ad89c1d2089861ae3a00bf8fd946fa275)" + }, + { + "address": "0x10686e7", + "lines": [ + "node 0x10686e7[]@:0" + ], + "mapping": "0x400000-0x6489000@0x0 node(38e3105ad89c1d2089861ae3a00bf8fd946fa275)" + }, + { + "address": "0x1068abf", + "lines": [ + "node 0x1068abf[]@:0" + ], + "mapping": "0x400000-0x6489000@0x0 node(38e3105ad89c1d2089861ae3a00bf8fd946fa275)" + }, + { + "address": "0x107024f", + "lines": [ + "node 0x107024f[]@:0" + ], + "mapping": "0x400000-0x6489000@0x0 node(38e3105ad89c1d2089861ae3a00bf8fd946fa275)" + }, + { + "address": "0x1070607", + "lines": [ + "node 0x1070607[]@:0" + ], + "mapping": "0x400000-0x6489000@0x0 node(38e3105ad89c1d2089861ae3a00bf8fd946fa275)" + }, + { + "address": "0x1be3863", + "lines": [ + "node 0x1be3863[]@:0" + ], + "mapping": "0x400000-0x6489000@0x0 node(38e3105ad89c1d2089861ae3a00bf8fd946fa275)" + }, + { + "address": "0x1be3c1b", + "lines": [ + "node 0x1be3c1b[]@:0" + ], + "mapping": "0x400000-0x6489000@0x0 node(38e3105ad89c1d2089861ae3a00bf8fd946fa275)" + }, + { + "address": "0x1bec813", + "lines": [ + "node 0x1bec813[]@:0" + ], + "mapping": "0x400000-0x6489000@0x0 node(38e3105ad89c1d2089861ae3a00bf8fd946fa275)" + }, + { + "address": "0x1bd7acb", + "lines": [ + "node 0x1bd7acb[]@:0" + ], + "mapping": "0x400000-0x6489000@0x0 node(38e3105ad89c1d2089861ae3a00bf8fd946fa275)" + }, + { + "address": "0xe2863f", + "lines": [ + "node 0xe2863f[]@:0" + ], + "mapping": "0x400000-0x6489000@0x0 node(38e3105ad89c1d2089861ae3a00bf8fd946fa275)" + }, + { + "address": "0xf75d27", + "lines": [ + "node 0xf75d27[]@:0" + ], + "mapping": "0x400000-0x6489000@0x0 node(38e3105ad89c1d2089861ae3a00bf8fd946fa275)" + }, + { + "address": "0xedc6e3", + "lines": [ + "node 0xedc6e3[]@:0" + ], + "mapping": "0x400000-0x6489000@0x0 node(38e3105ad89c1d2089861ae3a00bf8fd946fa275)" + }, + { + "address": "0x2773f", + "lines": [ + "libc.so.6 0x2773f[]@:0" + ], + "mapping": "0x0-0x187000@0x0 libc.so.6(16e7fc798f754633a38d91ba09be84f8aa839464)" + }, + { + "address": "0x27817", + "lines": [ + "libc.so.6 0x27817[]@:0" + ], + "mapping": "0x0-0x187000@0x0 libc.so.6(16e7fc798f754633a38d91ba09be84f8aa839464)" + }, + { + "address": "0xe25e6f", + "lines": [ + "node 0xe25e6f[]@:0" + ], + "mapping": "0x400000-0x6489000@0x0 node(38e3105ad89c1d2089861ae3a00bf8fd946fa275)" + } + ], + "values": "50000000" + } + ], + "period": "1000000000" +}