Skip to content

Instantly share code, notes, and snippets.

@simonswine
Created June 12, 2023 16:06
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save simonswine/d5e18e952e8c6f37849e85f6381c9b6b to your computer and use it in GitHub Desktop.
Save simonswine/d5e18e952e8c6f37849e85f6381c9b6b to your computer and use it in GitHub Desktop.
Open Phlare symobls with panda
import pandas as pd
block = '01H2FK73D796PRDR32PGGMKV2H/'
mappings = pd.read_parquet(block+'mappings.parquet', engine='pyarrow')
strings = pd.read_parquet(block+'strings.parquet', engine='pyarrow')
locations = pd.read_parquet(block+'locations.parquet', engine='pyarrow')
stacktraces = pd.read_parquet(block+'stacktraces.parquet', engine='pyarrow')
functions = pd.read_parquet(block+'functions.parquet', engine='pyarrow')
def resolve_strings(df, columns=[]):
for c in columns:
df = pd.merge(df, strings, how="left", left_on=c, right_on="ID")
df = df.drop(columns=[c,"ID"])
df = df.rename(columns={"String": c+ 'String'})
return df
functions = resolve_strings(functions, columns=["Name", "SystemName","Filename"])
mappings = resolve_strings(mappings, columns=["Filename", "BuildId"])
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment