github.com/grafana/pyroscope@v1.18.0/pkg/block/section_symbols.go (about) 1 package block 2 3 import ( 4 "context" 5 "fmt" 6 7 "github.com/grafana/pyroscope/pkg/phlaredb/symdb" 8 ) 9 10 func openSymbols(ctx context.Context, s *Dataset) (err error) { 11 offset := s.sectionOffset(SectionSymbols) 12 size := s.sectionSize(SectionSymbols) 13 if buf := s.inMemoryBuffer(); buf != nil { 14 offset -= int64(s.offset()) 15 s.symbols, err = symdb.OpenObject(ctx, s.inMemoryBucket(buf), s.obj.path, offset, size) 16 } else { 17 s.symbols, err = symdb.OpenObject(ctx, s.obj.storage, s.obj.path, offset, size, 18 symdb.WithPrefetchSize(symbolsPrefetchSize)) 19 } 20 if err != nil { 21 return fmt.Errorf("opening symbols: %w", err) 22 } 23 return nil 24 }