Gopclntab.findGoPcLn() now performs a search across the entire binary instead of only searching IDA defined functions. This fixes some cases where the plugin was unable to find the LineTable
Starting with IDA 7.4, 6.95 compatibility is disabled by default. Use the updated APIs as listed at https://www.hex-rays.com/products/ida/support/ida74_idapython_no_bc695_porting_guide.shtml
The GO_Utils initialization relied on idc.here(), which when
run in batch mode would result in the following error:
Z:\vm\IDAGolangHelper-master\auto_go_rename.py: could not find segment at 0xffffffffffffffff
Traceback (most recent call last):
File "C:\Program Files\IDA 7.0\python\ida_idaapi.py", line 553, in IDAPython_ExecScript
execfile(script, g)
File "Z:/vm/IDAGolangHelper-master/auto_go_rename.py", line 29, in <module>
GO_SETTINGS = GO_Utils.GoSettings()
File "Z:/vm/IDAGolangHelper-master\GO_Utils\__init__.py", line 15, in __init__
self.bt_obj = Utils.get_bitness(idc.here())
File "Z:/vm/IDAGolangHelper-master\GO_Utils\Utils.py", line 35, in get_bitness
if idc.GetSegmentAttr(addr, idc.SEGATTR_BITNESS) == 2:
File "C:\Program Files\IDA 7.0\python\idc_bc695.py", line 152, in GetSegmentAttr
def GetSegmentAttr(segea, attr): return get_segm_attr(segea, attr)
File "C:\Program Files\IDA 7.0\python\idc.py", line 3508, in get_segm_attr
assert seg, "could not find segment at 0x%x" % segea
AssertionError: could not find segment at 0xffffffffffffffff
Even having the script Jump(BeginEA()) before initializing the library
would trigger this error occasionally. Replacing idc.here() with
idc.BeginEA() resolved the issue.