Published unlisted
Edited
Aug 10, 2020
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
demangledProfile
Insert cell
Insert cell
Insert cell
demangledProfile = ({
...profile,
profile: {
...profile.profile,
threads: profile.profile.threads.map(t => ({
...t,
stringTable: t.stringTable.map(str => {
const [name, ...rest] = str.split(' ');
return [demangleMap.get(name) || name, ...rest].join(' ');
})
}))
},
frames: profile.frames.map(f =>
f && demangleMap.has(f.functionDisplayName)
? { ...f, functionDisplayName: demangleMap.get(f.functionDisplayName) }
: f
)
})
Insert cell
Insert cell
names = profile.frames
.filter(Boolean)
.map(p => p.functionDisplayName)
.concat(
profile.profile.threads
.flatMap(t => t.stringTable)
.map(str => str.split(' ')[0])
)
.filter(Boolean)
Insert cell
Insert cell
import {
demangleMap,
viewof uploaded,
profile,
demangleInstructions,
viewof demangleOutput,
downloadButton
} with { names, demangledProfile } from '0f532c6afb81f2d8'
Insert cell

Purpose-built for displays of data

Observable is your go-to platform for exploring data and creating expressive data visualizations. Use reactive JavaScript notebooks for prototyping and a collaborative canvas for visual data exploration and dashboard creation.
Learn more