gospal icon indicating copy to clipboard operation
gospal copied to clipboard

changes to memory and mutex extraction

Open RocaBOT opened this issue 5 years ago • 0 comments

There's quite a few things in there, including:

  • a (somewhat hacky) way of not printing functions that are part of the go runtime and not the inferred program (in migoinfer/inferer.go and migoinfer/internal/migoinfer/migo.go, mainly) -- this is based on filtering out some keywords and probably doesn't contain some other packages, including the net package that I don't use in my examples
  • adding export for (rw)mutex parameters, as well as slight changes to the way their names (and the shared memory ones) are extracted to unify with channel extracted names
  • a (somewhat hacky) way to filter memory accesses that are not done to shared variables of the program (those are extracted by us with the mem keyword in their uniqName, so I seach for that to filter out anything not having it)
  • slight change to the way mutex and shared variables are handled by migo (needs the update to migo that I will PR as well in a minute)

Obviously, anything in there is up for discussion, especially if we want to keep the output as "pure" as possible, the first hack that filters out non-program functions can be easily reverted, and if you find some of the additions are misplaced I'm happy to know where they would have their better place

RocaBOT avatar Apr 18 '20 13:04 RocaBOT