PasteRack.org | ||
Paste # 36979 | ||
2020-01-19 22:26:56 | ||
Fork as a new paste. | ||
Paste viewed 544 times. | ||
Tweet | ||
Embed: | ||
#lang racket OS :windows insider program Slow Windows 10 Insider Preview Build 19041.21 I am not sure if the format is correct . Dr.racket version :download from https://download.racket-lang.org/ racket-7.5-x86_64-win32.exe (78M) before update the OS it just work fine. but after that,whenever I open the Dr.Racket ,it just Stuck and I can't do anything ,even input a number,every Button no response,I have to kill it in Task Manage, I have try to debug it with VS,just get a "Exception thrown: write access violation",I have ask someone if it is because my OS update .they recommanded me download the source ,build it,and find the bug. what I find just a s[0] = 0; in gmc.c void scheme_gmp_tls_unload(intptr_t *s, void *data) { current_total_allocation = (uintptr_t)s[0]; max_total_allocation = (uintptr_t)s[1]; gmp_tmp_current = (tmp_stack *)s[2]; s[0] = 0; gmp_mem_pool = data; } in the Call Stack I jump to the position where the function be called. just find : static void done_with_GC () { scheme_gmp_tls_unload (XFORM_OK_ASSIGN (((Thread_Local_Variables * ) ((char * ) & scheme_thread_locals_space + scheme_tls_delta ) ) -> scheme_current_thread_ ) -> gmp_tls , XFORM_OK_ASSIGN (((Thread_Local_Variables * ) ((char * ) & scheme_thread_locals_space + scheme_tls_delta ) ) -> scheme_current_thread_ ) -> gmp_tls_data ) ; XFORM_OK_ASSIGN (((Thread_Local_Variables * ) ((char * ) & scheme_thread_locals_space + scheme_tls_delta ) ) -> scheme_current_thread_ ) -> gmp_tls_data = ((void * ) 0 ) ; if (XFORM_OK_ASSIGN (((Thread_Local_Variables * ) ((char * ) & scheme_thread_locals_space + scheme_tls_delta ) ) -> scheme_current_thread_ ) -> running ) { XFORM_OK_ASSIGN (((Thread_Local_Variables * ) ((char * ) & scheme_thread_locals_space + scheme_tls_delta ) ) -> scheme_current_runstack_ ) = XFORM_OK_ASSIGN (((Thread_Local_Variables * ) ((char * ) & scheme_thread_locals_space + scheme_tls_delta ) ) -> scheme_current_thread_ ) -> runstack ; XFORM_OK_ASSIGN (((Thread_Local_Variables * ) ((char * ) & scheme_thread_locals_space + scheme_tls_delta ) ) -> scheme_current_runstack_start_ ) = XFORM_OK_ASSIGN (((Thread_Local_Variables * ) ((char * ) & scheme_thread_locals_space + scheme_tls_delta ) ) -> scheme_current_thread_ ) -> runstack_start ; } scheme_resume_remembered_threads () ; XFORM_OK_ASSIGN (((Thread_Local_Variables * ) ((char * ) & scheme_thread_locals_space + scheme_tls_delta ) ) -> end_this_gc_time_ ) = scheme_get_process_milliseconds () ; XFORM_OK_ASSIGN (((Thread_Local_Variables * ) ((char * ) & scheme_thread_locals_space + scheme_tls_delta ) ) -> end_this_gc_real_time_ ) = scheme_get_inexact_milliseconds () ; XFORM_OK_ASSIGN (((Thread_Local_Variables * ) ((char * ) & scheme_thread_locals_space + scheme_tls_delta ) ) -> scheme_total_gc_time_ ) += (XFORM_OK_ASSIGN (((Thread_Local_Variables * ) ((char * ) & scheme_thread_locals_space + scheme_tls_delta ) ) -> end_this_gc_time_ ) - XFORM_OK_ASSIGN (((Thread_Local_Variables * ) ((char * ) & scheme_thread_locals_space + scheme_tls_delta ) ) -> start_this_gc_time_ ) ) ; XFORM_OK_ASSIGN (((Thread_Local_Variables * ) ((char * ) & scheme_thread_locals_space + scheme_tls_delta ) ) -> gc_prep_thread_chain_ ) = XFORM_OK_ASSIGN (((Thread_Local_Variables * ) ((char * ) & scheme_thread_locals_space + scheme_tls_delta ) ) -> scheme_current_thread_ ) ; XFORM_OK_ASSIGN (((Thread_Local_Variables * ) ((char * ) & scheme_thread_locals_space + scheme_tls_delta ) ) -> scheme_current_thread_ ) -> gc_prep_chain = XFORM_OK_ASSIGN (((Thread_Local_Variables * ) ((char * ) & scheme_thread_locals_space + scheme_tls_delta ) ) -> scheme_current_thread_ ) ; run_gc_callbacks (0 ) ; scheme_future_continue_after_gc () ; } I don't know what the "XFORM_OK_ASSIGN" is ,so I google it ,just find in https://github.com/racket/racket/blob/master/racket/collects/compiler/private/xform.rkt#L772 either I don't know what the file is.so my question is : is my thinking right? and where can I find the doc about "what the file is". and some else question ,in the case(I mean GUI Stuck), I download the source from https://github.com/racket/racket and build it . after I find it just a min part,not include the GUI,so what I find the "bug" whether or not really is the reason about GUI stuck? I am not sure if this question is naive,I am new to it,so please give some tip atleast thanks!