From: Sam S. <sd...@gn...> - 2008-11-24 14:22:31
|
Vladimir Tzankov wrote: > On Nov 24, 2008, at 5:49 AM, Sam Steingold wrote: >> >> "make check-exec-image" fails with mt because loadmem_from_executable >> fails to find the image in the executable, specifically, the >> headers do >> not match: >> ............... >> _per_thread_symvalues & _mem_* differ. > > > Yes - I see. > Currently the threads do not survive savemem/loadmem. Also the per > thread special bindings do not survive it as well (it's one of the > TODO items in the doc/multithread.txt). > > _per_thread_symvalues is the count of per thread special variables > when the image was saved. When it is loaded - I just allocate enough > place for this amount of bindings and initialize all of them as empty. > > In loadmem_from_executable() there is no way to know how many per > thread special bindings we have in the image before we read the > header. fill_memdump_header() fills in _per_thread_symvalues the > current num_symvalues (which is 1 - since nothing is yes initialized). > > So I suggest currently just to exclude _per_thread_symvalues from the > memcmp() ? you also need to exclude _mem_* because they differ too... Maybe what you mean is to exclude everything after _per_thread_symvalues from the comparison, but use that information to initialize the memory? |