}
if obj, err := plan9obj.NewFile(f); err == nil {
- sym, err := findPlan9Symbol(obj, "text")
- if err != nil {
- return 0, nil, nil, err
- }
- textStart = sym.Value
+ textStart = obj.LoadAddress + obj.HdrSize
if pclntab, err = loadPlan9Table(obj, "pclntab", "epclntab"); err != nil {
return 0, nil, nil, err
}
if err != nil {
return nil, err
}
- return data[ssym.Value-(f.LoadAddress+f.HdrSize) : esym.Value-(f.LoadAddress+f.HdrSize)], nil
+ textStart := f.LoadAddress + f.HdrSize
+ return data[ssym.Value-textStart : esym.Value-textStart], nil
}
}
if obj, err := plan9obj.NewFile(f); err == nil {
- sym, err := findPlan9Symbol(obj, "text")
- if err != nil {
- return 0, nil, nil, nil, err
- }
- textStart = sym.Value
+ textStart = obj.LoadAddress + obj.HdrSize
if sect := obj.Section("text"); sect != nil {
textData, _ = sect.Data()
}
if err != nil {
return nil, err
}
- text, err := findPlan9Symbol(f, "text")
- if err != nil {
- return nil, err
- }
sect := f.Section("text")
if sect == nil {
return nil, err
if err != nil {
return nil, err
}
- return data[ssym.Value-text.Value : esym.Value-text.Value], nil
+ textStart := f.LoadAddress + f.HdrSize
+ return data[ssym.Value-textStart : esym.Value-textStart], nil
}
// TODO(rsc): This code is taken from cmd/nm. Arrange some way to share the code.