Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

(simple)Viv gui memcanvas render filter bugfix #474

Merged

Conversation

atlas0fd00m
Copy link
Contributor

No description provided.

@atlas0fd00m
Copy link
Contributor Author

bugfix:
currently any deref with a "\x" in the name will kill rendering in both Memory and FuncGraph views.
test: open (from vivtestfiles) linux/amd64/chown and view 0x0200361a in MemoryView. make the operand's target name "foo\xfoo" (instead of $str_failed ....).
now view the location again. it won't. it iterprets the "\x" as the start of a special character, and since "fo" is not good hex, it fails.

also, the naming rending of locations is ugly and basically wrong (and awful). for example:
currently:

.reloc:0x100fa36a  %5Cn%5Cr%5C0%5Cxrs+%22%22+foo+%27+%27+%5C1%5C2%5C3%5C4: [0 XREFS]

with this fix:

.reloc:0x100fa36a  \n\r\0\xrs "" foo ' ' \1\2\3\4: [0 XREFS]

@atlas0fd00m
Copy link
Contributor Author

you should see something like:

------------------------------------------------------------------
JSconsole message = Uncaught SyntaxError: Invalid hexadecimal escape sequence; line: 76;
------------------------------------------------------------------

in the console. spit out by the Javascript interpreter.

@atlas0fd00m atlas0fd00m changed the title Viv gui memcanvas render filter bugfix (simple)Viv gui memcanvas render filter bugfix Dec 4, 2021
envi/qt/memcanvas.py Outdated Show resolved Hide resolved
@@ -72,7 +72,7 @@ def renderLocation(self, mcanv, loc, name, isfunc, cmnt, extra):
segva, segsize, segname, segfname = seg
if segva == lva:
mcanv.addText(linepre, tag=vatag)
mcanv.addText("Segment: %s (%d bytes) FIXME PERMS\n" % (segname, segsize))
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should probably just do this instead of deleting the note to do it.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

do you know what the FIXME means? i don't. meanwhile, it just plain looks bad, and has for 15+ years.

i cut it because it's been there so long that the context is lost. Segments don't hold permissions. perhaps the FIXME means Visi intended to store permissions in the segments, which is a relatively large pile of poo, involving specifics of PE and ELF and MACHO, and modification to the event stream/handler. i'm pretty sure it was never implemented because it was never important enough.

i removed it because i don't know how to "FIXME" and i intend for Viv's audience to get much bigger in the near future, and i don't want their first impressions to be shaped by this message. we can add it to the backlog if you like, but in the UI is just wrong.

@atlas0fd00m atlas0fd00m merged commit f466b9e into vivisect:master Dec 9, 2021
@atlas0fd00m atlas0fd00m deleted the viv_gui_memcanvas_render_filter_bugfix branch December 9, 2021 06:13
atlas0fd00m added a commit to atlas0fd00m/vivisect that referenced this pull request Dec 9, 2021
* minor bugfix from Vdb/Viv/Emu bridge pr

* adding a new posix noret

* minor exception handling

* bugfix: make elfplt analysis use makeFunctionThunk() in a way that actually catches norets using the fmcb_Thunk() analysis hook.
bugfix: redo how pointers are incremented

* cleanup: remove "thread" from the logging format.  that should save a few kb each run :)

* bugfix: ARM emulation analsyis pass - make stop when calling NoRet funcs

* make function headers display "NORET" for functions that have been categorized as such.

* cleanup makeFunctionThunk issues
cleanup coloration of NORET

* tweak testelf (yay, no longer cares about "unique" names like foo_0 and foo_1)

* better context for pointer log messages
more testelf

* tweaks per @rakuy0

* touch ups and unittests

* bugfix: ARM emulation analsyis pass - make stop when calling NoRet funcs

* cleanup makeFunctionThunk issues
cleanup coloration of NORET

* touch ups and unittests

* GUI filters more appropriate for displaying names and strings with the almighty \

* rakuy0's brilliant string-filter suggestion.
atlas0fd00m added a commit that referenced this pull request Dec 23, 2021
* bugfix: ARM emulation analsyis pass - make stop when calling NoRet funcs

* cleanup makeFunctionThunk issues
cleanup coloration of NORET

* touch ups and unittests

* Envi intel idiv fix (#476)

* bugfix: ARM emulation analsyis pass - make stop when calling NoRet funcs

* cleanup makeFunctionThunk issues
cleanup coloration of NORET

* touch ups and unittests

* fix i386 idiv bug (see #414)

* (simple)Viv gui memcanvas render filter bugfix (#474)

* minor bugfix from Vdb/Viv/Emu bridge pr

* adding a new posix noret

* minor exception handling

* bugfix: make elfplt analysis use makeFunctionThunk() in a way that actually catches norets using the fmcb_Thunk() analysis hook.
bugfix: redo how pointers are incremented

* cleanup: remove "thread" from the logging format.  that should save a few kb each run :)

* bugfix: ARM emulation analsyis pass - make stop when calling NoRet funcs

* make function headers display "NORET" for functions that have been categorized as such.

* cleanup makeFunctionThunk issues
cleanup coloration of NORET

* tweak testelf (yay, no longer cares about "unique" names like foo_0 and foo_1)

* better context for pointer log messages
more testelf

* tweaks per @rakuy0

* touch ups and unittests

* bugfix: ARM emulation analsyis pass - make stop when calling NoRet funcs

* cleanup makeFunctionThunk issues
cleanup coloration of NORET

* touch ups and unittests

* GUI filters more appropriate for displaying names and strings with the almighty \

* rakuy0's brilliant string-filter suggestion.

* holy crap why was this not done years ago.
atlas0fd00m added a commit that referenced this pull request Dec 23, 2021
* bugfix: ARM emulation analsyis pass - make stop when calling NoRet funcs

* cleanup makeFunctionThunk issues
cleanup coloration of NORET

* touch ups and unittests

* Envi intel idiv fix (#476)

* bugfix: ARM emulation analsyis pass - make stop when calling NoRet funcs

* cleanup makeFunctionThunk issues
cleanup coloration of NORET

* touch ups and unittests

* fix i386 idiv bug (see #414)

* (simple)Viv gui memcanvas render filter bugfix (#474)

* minor bugfix from Vdb/Viv/Emu bridge pr

* adding a new posix noret

* minor exception handling

* bugfix: make elfplt analysis use makeFunctionThunk() in a way that actually catches norets using the fmcb_Thunk() analysis hook.
bugfix: redo how pointers are incremented

* cleanup: remove "thread" from the logging format.  that should save a few kb each run :)

* bugfix: ARM emulation analsyis pass - make stop when calling NoRet funcs

* make function headers display "NORET" for functions that have been categorized as such.

* cleanup makeFunctionThunk issues
cleanup coloration of NORET

* tweak testelf (yay, no longer cares about "unique" names like foo_0 and foo_1)

* better context for pointer log messages
more testelf

* tweaks per @rakuy0

* touch ups and unittests

* bugfix: ARM emulation analsyis pass - make stop when calling NoRet funcs

* cleanup makeFunctionThunk issues
cleanup coloration of NORET

* touch ups and unittests

* GUI filters more appropriate for displaying names and strings with the almighty \

* rakuy0's brilliant string-filter suggestion.

* update to support latest ipython interface, with the actual shell started *outside* the except clause.

* bugfix: DummyNamespace

* cleanup and bugfixes

* update to module docs to show how to use dbg_interact()
atlas0fd00m added a commit to atlas0fd00m/vivisect that referenced this pull request Dec 24, 2021
* bugfix: ARM emulation analsyis pass - make stop when calling NoRet funcs

* cleanup makeFunctionThunk issues
cleanup coloration of NORET

* touch ups and unittests

* Envi intel idiv fix (vivisect#476)

* bugfix: ARM emulation analsyis pass - make stop when calling NoRet funcs

* cleanup makeFunctionThunk issues
cleanup coloration of NORET

* touch ups and unittests

* fix i386 idiv bug (see vivisect#414)

* (simple)Viv gui memcanvas render filter bugfix (vivisect#474)

* minor bugfix from Vdb/Viv/Emu bridge pr

* adding a new posix noret

* minor exception handling

* bugfix: make elfplt analysis use makeFunctionThunk() in a way that actually catches norets using the fmcb_Thunk() analysis hook.
bugfix: redo how pointers are incremented

* cleanup: remove "thread" from the logging format.  that should save a few kb each run :)

* bugfix: ARM emulation analsyis pass - make stop when calling NoRet funcs

* make function headers display "NORET" for functions that have been categorized as such.

* cleanup makeFunctionThunk issues
cleanup coloration of NORET

* tweak testelf (yay, no longer cares about "unique" names like foo_0 and foo_1)

* better context for pointer log messages
more testelf

* tweaks per @rakuy0

* touch ups and unittests

* bugfix: ARM emulation analsyis pass - make stop when calling NoRet funcs

* cleanup makeFunctionThunk issues
cleanup coloration of NORET

* touch ups and unittests

* GUI filters more appropriate for displaying names and strings with the almighty \

* rakuy0's brilliant string-filter suggestion.

* holy crap why was this not done years ago.
atlas0fd00m added a commit to atlas0fd00m/vivisect that referenced this pull request Dec 24, 2021
* bugfix: ARM emulation analsyis pass - make stop when calling NoRet funcs

* cleanup makeFunctionThunk issues
cleanup coloration of NORET

* touch ups and unittests

* Envi intel idiv fix (vivisect#476)

* bugfix: ARM emulation analsyis pass - make stop when calling NoRet funcs

* cleanup makeFunctionThunk issues
cleanup coloration of NORET

* touch ups and unittests

* fix i386 idiv bug (see vivisect#414)

* (simple)Viv gui memcanvas render filter bugfix (vivisect#474)

* minor bugfix from Vdb/Viv/Emu bridge pr

* adding a new posix noret

* minor exception handling

* bugfix: make elfplt analysis use makeFunctionThunk() in a way that actually catches norets using the fmcb_Thunk() analysis hook.
bugfix: redo how pointers are incremented

* cleanup: remove "thread" from the logging format.  that should save a few kb each run :)

* bugfix: ARM emulation analsyis pass - make stop when calling NoRet funcs

* make function headers display "NORET" for functions that have been categorized as such.

* cleanup makeFunctionThunk issues
cleanup coloration of NORET

* tweak testelf (yay, no longer cares about "unique" names like foo_0 and foo_1)

* better context for pointer log messages
more testelf

* tweaks per @rakuy0

* touch ups and unittests

* bugfix: ARM emulation analsyis pass - make stop when calling NoRet funcs

* cleanup makeFunctionThunk issues
cleanup coloration of NORET

* touch ups and unittests

* GUI filters more appropriate for displaying names and strings with the almighty \

* rakuy0's brilliant string-filter suggestion.

* update to support latest ipython interface, with the actual shell started *outside* the except clause.

* bugfix: DummyNamespace

* cleanup and bugfixes

* update to module docs to show how to use dbg_interact()
atlas0fd00m added a commit that referenced this pull request May 23, 2022
* Break On Library Init (and stub for Library Load)
and bugfix for clicking EFLAGS gui buttons.

* modified flaky unittest

* removed prints

* bugfix for event/threading for notify/breakpoints

* Finally!  LockStepper Class moving into vtrace.envitools.  Raw move here... updates to follow (for easy diffing between commits)

* bugfix

* revamped the LockStepper class (still have to remove LockStepEmulator class and revamp "lockStepEmulator" when we're done)

* oops

* bugfix

* minor bugfix from Vdb/Viv/Emu bridge pr

* adding a new posix noret

* minor exception handling

* bugfix: make elfplt analysis use makeFunctionThunk() in a way that actually catches norets using the fmcb_Thunk() analysis hook.
bugfix: redo how pointers are incremented

* cleanup: remove "thread" from the logging format.  that should save a few kb each run :)

* bugfix: ARM emulation analsyis pass - make stop when calling NoRet funcs

* make function headers display "NORET" for functions that have been categorized as such.

* cleanup makeFunctionThunk issues
cleanup coloration of NORET

* tweak testelf (yay, no longer cares about "unique" names like foo_0 and foo_1)

* better context for pointer log messages
more testelf

* tweaks per @rakuy0

* touch ups and unittests

* lots of updates to support getBaseAddrAndSize() on each file format (except macho, which is a wip)

* making macho progress.  it's apparently been very limited if not broken for a while.  bringing it into the 2020's

* macho is loading an MACHO-64 binary into a workspace :)

* working on getMemBaseAndSize

* support pe

* bugfix: treating baseaddr as if it is only as provided by DLL.  separated out "imagebase" and "baseaddr".
making progress on loading.  not done yet...  but the baseaddr bug helps.

* feature: -o to select the output filename
bugfix: libc_start_main() errored out with a string mismatch
bugfix: move "connectExportsToImports()" to it's own "linker" analysis module
bugfix: ELF mobile loading ability!!!!!!!!!!!! <AGCK!>
feature: new VaSet "ResolvedImports" for imports that have been resolved and turned into Pointers.

* minor tweaks

* improvement:  Dynamics add-base-offset before storage, and cleanup
unittest:  adding multi-file and non-caching options in helpers.  tests to come.

* completed unittests for loading multiple binaries.

* change a few INS_SYSTEM x86/x64 instruction opcodes to be unique

* unify @rakuy0's and my lockstep emu classes and clean up

* de-x86ify

* reworking isProbablyCode() and emucode.watcher to allow the determined ARM/THUMB mode to be handed back and turned into the correct function arch.  it's a tad ugly, but it's making a huge difference.

* a couple related bugfixes found floating around.

* woops, make linker work again.

* minor bugfix

* kill it.  too many issues

* rearrange ELF analysis to catch function thunks (elfplt/entrypoints).

* even later for ELF.  make sure all of PLT is analyzed before linking.

* thumb bugfix

* bugfix

* bugfix: ARM emulation analsyis pass - make stop when calling NoRet funcs

* cleanup makeFunctionThunk issues
cleanup coloration of NORET

* touch ups and unittests

* Envi intel idiv fix (#476)

* bugfix: ARM emulation analsyis pass - make stop when calling NoRet funcs

* cleanup makeFunctionThunk issues
cleanup coloration of NORET

* touch ups and unittests

* fix i386 idiv bug (see #414)

* (simple)Viv gui memcanvas render filter bugfix (#474)

* minor bugfix from Vdb/Viv/Emu bridge pr

* adding a new posix noret

* minor exception handling

* bugfix: make elfplt analysis use makeFunctionThunk() in a way that actually catches norets using the fmcb_Thunk() analysis hook.
bugfix: redo how pointers are incremented

* cleanup: remove "thread" from the logging format.  that should save a few kb each run :)

* bugfix: ARM emulation analsyis pass - make stop when calling NoRet funcs

* make function headers display "NORET" for functions that have been categorized as such.

* cleanup makeFunctionThunk issues
cleanup coloration of NORET

* tweak testelf (yay, no longer cares about "unique" names like foo_0 and foo_1)

* better context for pointer log messages
more testelf

* tweaks per @rakuy0

* touch ups and unittests

* bugfix: ARM emulation analsyis pass - make stop when calling NoRet funcs

* cleanup makeFunctionThunk issues
cleanup coloration of NORET

* touch ups and unittests

* GUI filters more appropriate for displaying names and strings with the almighty \

* rakuy0's brilliant string-filter suggestion.

* update to support latest ipython interface, with the actual shell started *outside* the except clause.

* Funcgraphs get Follow-the-Leader, Xrefs Window, and Window Renaming!

* bugfix: DummyNamespace

* call refresh function view for various events.

* bugfix per @rakuy0

* cleanup and bugfixes

* comment on the heuristics for ARM/Thumb determination

* holy crap why was this not done years ago.

* update macho parsing to the modern age (#486)

Fix and extend Mach-O parsing, add tests, more structure definitions. Just a large round of needed updates.

* Emulation taint comments (crazy simple) (#490)

* bugfix: ARM emulation analsyis pass - make stop when calling NoRet funcs

* cleanup makeFunctionThunk issues
cleanup coloration of NORET

* touch ups and unittests

* Envi intel idiv fix (#476)

* bugfix: ARM emulation analsyis pass - make stop when calling NoRet funcs

* cleanup makeFunctionThunk issues
cleanup coloration of NORET

* touch ups and unittests

* fix i386 idiv bug (see #414)

* (simple)Viv gui memcanvas render filter bugfix (#474)

* minor bugfix from Vdb/Viv/Emu bridge pr

* adding a new posix noret

* minor exception handling

* bugfix: make elfplt analysis use makeFunctionThunk() in a way that actually catches norets using the fmcb_Thunk() analysis hook.
bugfix: redo how pointers are incremented

* cleanup: remove "thread" from the logging format.  that should save a few kb each run :)

* bugfix: ARM emulation analsyis pass - make stop when calling NoRet funcs

* make function headers display "NORET" for functions that have been categorized as such.

* cleanup makeFunctionThunk issues
cleanup coloration of NORET

* tweak testelf (yay, no longer cares about "unique" names like foo_0 and foo_1)

* better context for pointer log messages
more testelf

* tweaks per @rakuy0

* touch ups and unittests

* bugfix: ARM emulation analsyis pass - make stop when calling NoRet funcs

* cleanup makeFunctionThunk issues
cleanup coloration of NORET

* touch ups and unittests

* GUI filters more appropriate for displaying names and strings with the almighty \

* rakuy0's brilliant string-filter suggestion.

* holy crap why was this not done years ago.

* (simple) Interactive IPython update (#487)

* bugfix: ARM emulation analsyis pass - make stop when calling NoRet funcs

* cleanup makeFunctionThunk issues
cleanup coloration of NORET

* touch ups and unittests

* Envi intel idiv fix (#476)

* bugfix: ARM emulation analsyis pass - make stop when calling NoRet funcs

* cleanup makeFunctionThunk issues
cleanup coloration of NORET

* touch ups and unittests

* fix i386 idiv bug (see #414)

* (simple)Viv gui memcanvas render filter bugfix (#474)

* minor bugfix from Vdb/Viv/Emu bridge pr

* adding a new posix noret

* minor exception handling

* bugfix: make elfplt analysis use makeFunctionThunk() in a way that actually catches norets using the fmcb_Thunk() analysis hook.
bugfix: redo how pointers are incremented

* cleanup: remove "thread" from the logging format.  that should save a few kb each run :)

* bugfix: ARM emulation analsyis pass - make stop when calling NoRet funcs

* make function headers display "NORET" for functions that have been categorized as such.

* cleanup makeFunctionThunk issues
cleanup coloration of NORET

* tweak testelf (yay, no longer cares about "unique" names like foo_0 and foo_1)

* better context for pointer log messages
more testelf

* tweaks per @rakuy0

* touch ups and unittests

* bugfix: ARM emulation analsyis pass - make stop when calling NoRet funcs

* cleanup makeFunctionThunk issues
cleanup coloration of NORET

* touch ups and unittests

* GUI filters more appropriate for displaying names and strings with the almighty \

* rakuy0's brilliant string-filter suggestion.

* update to support latest ipython interface, with the actual shell started *outside* the except clause.

* bugfix: DummyNamespace

* cleanup and bugfixes

* update to module docs to show how to use dbg_interact()

* making macho progress.  it's apparently been very limited if not broken for a while.  bringing it into the 2020's

* macho is loading an MACHO-64 binary into a workspace :)

* bugfix: ARM emulation analsyis pass - make stop when calling NoRet funcs

* cleanup makeFunctionThunk issues
cleanup coloration of NORET

* touch ups and unittests

* updates to support big-endian MachO

* touchup

* make LC_UNIXTHREAD/thread_command work with .flavor (and getEntryPoints())
updates to work with bigendian (and wonky git-shit)

* off by one

* bugfix: vsParse doesn't have bigend defined

* bugfix

* bsd commented code removal
.gitignore to ignore docs build files

* docs update: dev intros and further "rapid learning curve" (#475)

* still working on it, but savegame and share with friends.

* mods per @rakuy0 (and a couple additions)

* updates per @rakuy0

* V1.0.6 Release Prep (#492)

v1.0.6 release prep (and some unit test fix-ups)

* followme chans

* add multi-line comment editing using ":" instead of ";"

* minor changes to PE parser to not overwrite existing VaSets

* touch-up

* disconnect FuncGraphView's bastardly-dependence on MemoryView for the options menu

* disconnect FuncGraphView's bastardly-dependence on MemoryView for the options menu

* we recreate the workspace through the proxy, but never snap in the appropriate analysis modules.  this likely dates back to the days when analysis modules were added to the eventlist.

* improving the MemObjFile shim to make a memobj act like a file object.

* fix size calculation

* instead of setting another maplookup, delete it in handleDELCODEBLOCK

* Revert "Merge branch 'delcodeblock_bugfix' into atlas_merged_211212"

This reverts commit 32dca15, reversing
changes made to a4daacd.

* make saving local a possibility when connected to a server

* simple: fix string naming (which often chops off the last letter of the string)

* changes per @rakuy0 (and more expressiveness on the behavior)

* don't add the new name to the event stream (which is shared with the server and everyone else ever)

* bugfix: Elf parsing STT_FUNCs based on too many bits

* add `reset()` in funcgraph.py to reset the `itertools.count()er`
add MIRE-log in funcgraph's renderMemory

* add FuncGraph reset() to Remote Workspace connection (so we start over at "FuncGraph0" as the default first name)

* fix sequencing for _snapInAnalysisModules():  it has to happen *after* starting the client thread.

* make the loader use 1M alignment by default (and make it settable, instead of hard-coding it to ENVI's page-size)

* tweaks for easier view renaming

* work and lots of cleanup.
working on getting uuid to identify shared views instead of name

* follow by uuid seems to be roughed in.
uuid itself is not generating new uuids quite correctly yet.

next steps:
* Delete uuid
* Maintenance (cleanup of uuids where the leaders are no longer with us)
* UI mods
* On connect, push/pull tracked uuids

* bugfix: vwFromTrace() call to addFile was handing in the md5 object, not a serializable string (hexdigest)
bugfix: vdb snapshot wasn't capturing TEB's from a trace object, vw/emuFromTrace wasn't allowing for PEB/TEBs tracking from snapshot

* bugfix: str versus bytes

* improved output from the do_names command.

* use of a semaphore to ensure waiting for messages to be loading before setting up analysis modules for a remote connection.

* slightly more sane: 10sec timeout

* move semaphore triggers into the _mcb_* for Architecture and Platform, which is basically what we're waiting for *anyway*.  remove from "if you ever process an event"

* moving toward server-awareness of Leader channels

* got FuncGraph kinda working.  haven't plumbed in MemoryView or tested the "new client" grabbing of existing sessions, nor do we have DONTFOLLOWME plumbed thru.  but making headway!

* MemoryView roughed in, and bugfix in VivServer tracking...  getting closer.

* actually populate vw.leaders, and getting ready for NOTLEADER (to stop sharing and stop giving dead leader sessions as options to follow)

* lots of api stuff for Mem and Graph Views
Leader Location stuff too

* working on deleting LeaderSessions

* bugfixes and cleanup (and little additions)

* funcgraph expression display

* CLI helper for leader sessions, and vprints for mods and kills

* change from _fireEvent(wsname... to _fireEvent(chan... to tie in the channel, instead of just the workspace name.  this should give us some reverse-tracking ability for events and who caused them.  specifically right now we're tying the leader session to a given channel so we can clean up sessions when cleaning up abandoned channels.

* bugfix: we stopped highlighting locations (because we stopped returning va)

* bugfix (we changed the data structure but left this unchanged)

* cleanup

* unittests for leader sessions (core)

* rework using threading.Event and a configurable timeout

* make username a configurable item.

* update for remote functions that are new (and may not be immediately available on a given server).  basically: fail gracefully for backwards compat.

* a little more context

* change to followPointer/analyzePointer so we don't have to change analyzePointer's api in a breaking fashion.

* no good deed goes unpunished.  TODO:  fix this in it's own PR.

* handle None possibility

* somehow got this one wrong.

* updates per @rakuy0 review

* refresh debouncing and auto-refresh based on xrefs (improvement)
cache xrefs to make lookups speedy

* cleanup 'Comparing' print/log message

* change from storing an opaque `einfo` to storing user and fname for a uuid

* add in the starting location expression to IAMLEADER

* bugfix

* bugfix (debug)

* updates to tests per @rakuy0

* tweak (and followup fix/testsssss)

* typo

* 2 workarounds:
* workaround the msgpack setting which converts lists to tuples
* compat for older Viv Remote clients with newer server

* somehow missed these in the gui components, but got them in VivWorkspace

* don't update everyone every time we change a window name, only if we're leading a session with that window.

* ensure proper GUID creation.  currently a GUID is only written when the GUI starts.  we need to be able to expect each workspace has a GUID, unless it's a fresh workspace.
paradigm going forward:  GUID gets assigned on the first "vw.loadFrom*" or when calling "vw.getVivGuid()".
this allows us to not create a GUID if we don't want one (ie. when loading a remote workspace, or when we are just messing around).  what we're trying to avoid is multiple GUIDs in the event stream.  currently, with remote workspaces we have a race condition which causes a new GUID to be generated each time we connect... and Bulk analysis doesn't actually assign one.

with this fix:

```
In [1]: metaevts = [(i,evt) for i,evt in enumerate(vw._event_list) if evt[0] == 24 and evt[1][0]=='GUID'];  metaevts
Out[1]: [(61618, (24, ('GUID', '8b499ddc551a86ef04091f56160d9f72')))]

In [2]: vw.getVivGuid()
Out[2]: '8b499ddc551a86ef04091f56160d9f72'

```

* help get remote GUI layout working.

* Revert "Merge branch 'atlas_merged_211212' into last_few_gui_bugs_related_to_remote"

This reverts commit d531133, reversing
changes made to 13fe3d3.

* making the log messages more data-filled.

* timeouts to Events per @rakuy0

* unittest fix per @rakuy0

Co-authored-by: James Gross <45212823+rakuy0@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants