Initial hacky version of inspect source command

This commit is contained in:
2018-07-13 01:56:17 +01:00
parent 7cf43c59dd
commit eff9aa36f6
10 changed files with 309 additions and 635 deletions

32
inspect/line.go Normal file
View File

@@ -0,0 +1,32 @@
package inspect
// NewLine creates a new Line.
func NewLine(filePath string, lineNum int) *Line {
return &Line{
FilePath: filePath,
LineNum: lineNum,
ObjectMap: map[string]*Object{},
}
}
// Line represents a source line within a file and the objects allocated by it.
type Line struct {
FilePath string
LineNum int
ObjectMap map[string]*Object
ObjectCount int
ByteSize int64
MemSize int64
}
// Add adds a Object to a Line.
func (s *Line) Add(obj *Object) {
_, ok := s.ObjectMap[obj.Address]
if !ok && obj.File != "" && obj.Line != 0 {
s.ObjectCount++
s.ByteSize = s.ByteSize + obj.ByteSize
s.MemSize = s.MemSize + obj.MemSize
s.ObjectMap[obj.Address] = obj
}
}