emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Crash in M$ build using msvc 7.1


From: Andrey Zhdanov
Subject: Re: Crash in M$ build using msvc 7.1
Date: Thu, 24 Apr 2008 16:14:26 -0400

Eli Zaretskii wrote:
> The file etc/DEBUG gives some hints on how to debug crashes inside GC,
> search for "Debugging problems which happen in GC". Near the end of
> nt/INSTALL, you will find some advice on how to use Visual Studio to
> debug an MSVC build. I hope those two will give you enough
> information to at least begin the debugging.
>
> The first task is to find out which Lisp data structure gets
> corrupted. Can you do that?
Ok, I'll try:
(I deleted address@hidden from CC:
because that message contain large specific dump/debug trace)

stack trace:

00> emacs.exe!gc_sweep() alloc.c Line 6130
while (vector)
if (!VECTOR_MARKED_P (vector))
// 01009643 mov ecx,dword ptr [eax] <- access vio
// "vector" is in EAX = 0x61c42E60
// 21 steps(->next) from all_vectors:
0x01532800 4000804d 61c42e60 212fc400 212fc400 address@hidden/!.Ä/!
0x01532810 21351800 212fc400 212fc400 212fc400 ..5!.Ä/!.Ä/!.Ä/!
0x01532820 212fc400 212fc400 212fc400 212fc400 .Ä/!.Ä/!.Ä/!.Ä/!
0x01532830 212fc400 212fc400 212fc400 212fc400 .Ä/!.Ä/!.Ä/!.Ä/!
....

01> emacs.exe!Fgarbage_collect() alloc.c Line 5181
unmark_byte_stack ();
// here prev = 0x212fc400 - which fills mem block above

02> emacs.exe!Ffuncall(int nargs=0x00000001, int * args=0x0082f934)
eval.c Line 2968
Fgarbage_collect ();

debug_print((original_fun))
8583476

03> emacs.exe!Fbyte_code(int bytestr=0x011d5ad4, int vector=0x811d5acc,
int maxdepth=0x00000004) bytecode.c Line 681
TOP = Ffuncall (op + 1, &TOP);
AFTER_POTENTIAL_GC ();

04> emacs.exe!funcall_lambda(int fun=0x811d5a90, int nargs=0x00000001,
int * arg_vector=0x0082fa00) eval.c Line 3221 + 0xe
val = Fbyte_code (AREF (fun, COMPILED_BYTECODE),
AREF (fun, COMPILED_CONSTANTS),
AREF (fun, COMPILED_STACK_DEPTH));
debug_print((fun))
#[(&optional parameters) "Д!ЕћЖЗB!ИЙЋК
!€Л
\"€М
!€Н
!€О
!€ „2П
!€‚8Р
C\"€С)
+‡" [parameters success frame visibility-spec
x-handle-named-frame-geometry visibility x-create-frame (visibility) nil
((byte-code "„В !€В‡" [success frame delete-frame] 2))
x-setup-function-keys x-handle-reverse-video frame-set-background-mode
face-set-after-frame-default tool-bar-setup make-frame-visible
modify-frame-parameters t] 4 707761]

05>emacs.exe!Ffuncall(int nargs=0x00000001, int * args=0x21b9c3c0)
eval.c Line 3078 + 0xc
if (COMPILEDP (fun))
val = funcall_lambda (fun, numargs, args + 1);
debug_print((original_fun))
x-create-frame-with-faces

06>emacs.exe!Fbyte_code(int bytestr=0x01214f40, int vector=0x81214f38,
int maxdepth=0x00000006) Line bytecode.c 681
TOP = Ffuncall (op + 1, &TOP);
AFTER_POTENTIAL_GC ();
break;

07>emacs.exe!funcall_lambda(int fun=0x81214ef8, int nargs=0x00000001,
int * arg_vector=0x0082fad0) eval.c Line 3221 + 0xe
val = Fbyte_code (AREF (fun, COMPILED_BYTECODE),
AREF (fun, COMPILED_CONSTANTS),
AREF (fun, COMPILED_STACK_DEPTH));
debug_print((fun))
#[(&optional parameters) "Жћѓ,ЗЖћA!‰И=ѓЙ‚( Й=ѓ'КЛЖћA\"‚( )‚:Вћѓ9ВћA‚:
‰ ћAМ Й
„PКН \"€ОП!€
Р ћA\"address@hidden"‰ѓђУ#€)A‰„p*ФХ\"€,‡"
[parameters type window-system w frame-creation-function-alist
frame-creation-function terminal terminal-live-p t nil error "Terminal
%s does not exist" selected-frame "Don't know how to create a frame on
window system %s" run-hooks before-make-frame-hook append
normal-erase-is-backspace-setup-frame frame-parameter
set-frame-parameter run-hook-with-args after-make-frame-functions
oldframe frame window-system-default-frame-alist
frame-inherited-parameters param --cl-dolist-temp-- val] 6 824951 nil]

08>emacs.exe!Ffuncall(int nargs=0x00000001, int * args=0x21c56360)
eval.c Line 3078 + 0xc
if (COMPILEDP (fun))
val = funcall_lambda (fun, numargs, args + 1);
debug_print((original_fun))
make-frame

09>emacs.exe!Fbyte_code(int bytestr=0x012143e0, int vector=0x812143d8,
int maxdepth=0x00000006) Line 681
TOP = Ffuncall (op + 1, &TOP);
AFTER_POTENTIAL_GC ();
break;

10>emacs.exe!funcall_lambda(int fun=0x812143ac, int nargs=0x00000000,
int * arg_vector=0x0082fba0) Line 3221 + 0xe
val = Fbyte_code (AREF (fun, COMPILED_BYTECODE),
AREF (fun, COMPILED_CONSTANTS),
AREF (fun, COMPILED_STACK_DEPTH));
debug_print((fun))
#[nil "…T ?…TЖ=?…TЗИ Й \"„CК
Л#Мћ„.НBОBBП!‰Р !СТУ Т\"#€Ф !€Л‰‡"
[initial-window-system noninteractive special-display-function
terminal-frame initial-frame-alist default-frame-alist pc
special-display-popup-frame delq minibuffer-frame-list append nil
horizontal-scroll-bars (horizontal-scroll-bars . t) window-system
make-frame frame-remove-geometry-params set-frame-parameter environment
frame-parameter delete-frame frame-initial-frame-alist
frame-initial-frame default-minibuffer-frame] 6 822783]

11> emacs.exe!Ffuncall(int nargs=0x00000000, int * args=0x21bbfb48)
Line 3078 + 0xc
if (COMPILEDP (fun))
val = funcall_lambda (fun, numargs, args + 1);
debug_print((original_fun))
frame-initialize

12> emacs.exe!Fbyte_code(int bytestr=0x011dc478, int vector=0x811dc470,
int maxdepth=0x00000007) Line 681 C
TOP = Ffuncall (op + 1, &TOP);
AFTER_POTENTIAL_GC ();
break;

13>emacs.exe!funcall_lambda(int fun=0x811dc448, int nargs=0x00000000,
int * arg_vector=0x0082fc74) Line 3221 + 0xe C
val = Fbyte_code (AREF (fun, COMPILED_BYTECODE),
AREF (fun, COMPILED_CONSTANTS),
AREF (fun, COMPILED_STACK_DEPTH));

that's a huge one:
debug_print((fun))
#[nil "Ж  ЗИ!€ЗЙ!€ЗК!€ЛМ!‰Н=„9 Оќѓ&П‚9 Рќѓ1Н‚9 Сќѓ9Т)
У>address@hidden
Ц=ѓUЧB‚[ЧBХAШЩЪЏ€ЫН!€ЬЭCЮ
#НD‰E„ЂЯаб\"€вб!€‚ЏгдE!!DежF\"address@hidden address@hidden)НGAHJK?…Ви
‰LѓУLй address@hidden"ѓNо•НOPпрN\"NNсљ„QтNM\"‰QП=ѓ%NрНON‚PQ;ѓIуQM\"‰R„=ШфN\"address@hidden)‚PНPON)address@hidden"€,‚УGѓGHЎ€*Ѓ†Ѓ‡!€Ѓ€Ѓ‰!ѓ)Ѓ‰
€K„PV„PZЃЉ>ѓMЃ‹ЃЊЃЌ\"ЃЋќѓPПUK„vV„v[ЃЏ>ѓpЃђНЃ‘\"оX„vЃ’р!€K„љV„љЃ“
ѓљЃђНЃ\\\"оX„љЃ”р!€ЗЃ•!€ЗЃ–!€ЗЃ—!€ЗЃ˜!€ЗЃ™!€ЗЃљ!€ЗЃ›!€ЗЃњ!€ЗЃќ!€ЗЃm!€Ѓћ
€Ѓџ
€Ѓ€Ѓ !ѓЃ\\Wћ†щЃ\\Yћ‰\\… \\A… \\Aо=?])^_`abcSѓ(ЃЎSП‰#€НdLѓ„мЃўL\"ѓQЃЈЃ¤ЃҐЃ¦L\"Ѓ§#€‚„ЃЁЃ©
ЃЄ=ѓeЃ«‚kЃ«LP!!„„ЃЈЃ¤ЃҐЃ¬L\"Ѓ§#€Н‰XП=ѓ“Ѓ­‚•XefghigЃ®jkXѓґj
€‚ЅШЃЇЃ°Џ€lѓ
mѓ
rЃ± q€mѓ mЃІ=„мmўЃі=ѓтmA„тНm‚ mўЃі=ѓmAmНnЃ†Ѓґ!€)K„+Ѓµo!ѓ+Ѓ¶o!ѓ+Ѓ·o!€Нpkg=„=Пhki*hѓGike„gfe=„gЃёЃ№Ѓє
\"€Ѓ»q!€,rкљѓ€ЛЃј!††и ЃЅs†…Ѓѕ QrЃїЃt!ѓ<tuuѓ;address@hidden@address@hidden|‰}ѓиЃЕ}xBBx|ѓшЃЖ|xBBx{ѓЃЗЃИx\"xzѓЃЗЃЙx\"xyѓ(ЃЗЃКx\"xЃЛwПxDCН#€.*‚–)^c=ѓT_b=ѓT`a=„YЃМ
€+Ж ~Ѓ†ЃН!€eѓЈIѓЈЉЃє address@hidden ѓ‘з IП#A‰„~*з
IП#)ЃОЃП!ѓБrЃПq€ЂЃР=ѓАЃ €)K„Ф[„ФЃСЃТ
!€ШЃУЃФ!D‚ЃХGA!€KѓтЃЦП!€ЃїЃѓ!…ѓ;…ЃЧѓ!‡" [before-init-time
default-directory command-line-default-directory vc version-control
system-type current-time custom-reevaluate-setting
temporary-file-directory small-temporary-file-directory
auto-save-file-name-transforms getenv "VERSION_CONTROL" nil ("t"
"numbered") t ("nil" "existing") ("never" "simple") never (ms-dos
windows-nt emx) "(Unix)" "(Mac)" macos "(DOS)" error
(byte-code "„4 ѓЕЖЗ !ИP!!„ЙК \"€
ћA†$ЙК \" ! ћA†2ЙК \" €Е‡" [noninteractive initial-window-system
handle-args-function-alist command-line-args
window-system-initialization-alist featurep intern symbol-name "-win"
error "Unsupported window system `%s'"] 4) ((error
(byte-code
"address@hidden"address@hidden>ѓ)address@hidden@МNЙНAЛ##О\"€ПО!€РС ‡"
[error initial-window-system princ apply concat file-error
error-conditions format "%s: %s" mapconcat #[(obj) "БВ\"‡" [obj
prin1-to-string t] 3] ", " error-message #[(obj) "БВ\"‡" [obj
prin1-to-string t] 3] external-debugging-output terpri nil kill-emacs]
8))) set-locale-environment locate-file "simple" get-load-suffixes princ
"Warning: Could not find simple.el nor simple.elc"
external-debugging-output terpri file-truename file-name-directory
mapcar #[(elt) "@;address@hidden address@hidden" [elt lisp-dir
file-name-absolute-p] 2] decode-coding-string user-login-name
user-real-login-name "" (("--no-init-file") ("--no-site-file")
("--debug-init") ("--user") ("--iconic") ("--icon-type") ("--quick")
("--no-blinking-cursor") ("--basic-display")) string-match
"^\\(--[^=]*\\)=" 0 match-string 1 "--" try-completion assoc "Option
`%s' is ambiguous" ("-Q" "-quick") ("-D" "-basic-display")
(vertical-scroll-bars) ("-q" "-no-init-file") ("-u" "-user")
"-no-site-file" "-debug-init" "-iconic" (visibility . icon)
("-icon-type" "-i" "-itype") (icon-type . t) eol-mnemonic-unix
eol-mnemonic-mac eol-mnemonic-dos load-path lisp-dir simple-file-name
load-history command-line-args args locale-coding-system done
noninteractive init-file-user longopts argi orig-argi argval completion
elt site-run-file emacs-quick-startup no-blinking-cursor
emacs-basic-display initial-frame-alist init-file-debug
default-frame-alist window-system initial-window-system tool-bar-lines
tool-bar-originally-present scalable-fonts-allowed font-list-limit
face-ignored-fonts old-face-ignored-fonts old-font-list-limit
old-scalable-fonts-allowed inhibit-startup-screen
default-enable-multibyte-characters orig-enable-multibyte
debug-on-error-initial debug-on-error-should-be-set
debug-on-error-from-init-file inner debug-on-error deactivate-mark
transient-mark-mode mark-active abbrev-file-name abbrevs-changed
current-language-environment user-mail-address mail-host-address
font-lock-face-attributes face-attributes face-attribute face face-spec
underline-p italic-p bold-p background foreground after-init-time
--cl-dolist-temp-- major-mode initial-major-mode memory-signal-data
x-session-previous-id ("-nbc" "-no-blinking-cursor") "Option `%s'
doesn't allow an argument" run-hooks before-init-hook fboundp
frame-initialize (x w32 mac) x-get-resource "cursorBlink" "CursorBlink"
("off" "false") (x w32) frame-parameter menu-bar-lines menu-bar-mode
display-graphic-p tool-bar-mode blink-cursor-mode tooltip-mode
global-font-lock-mode mouse-wheel-down-event mouse-wheel-up-event
file-name-shadow-mode send-mail-function focus-follows-mouse
global-auto-composition-mode normal-erase-is-backspace-setup-frame
tty-register-default-colors frame-notice-user-settings load "[~/:
]" display-warning initialization format "Invalid user name %s" :error
file-directory-p expand-file-name windows-nt "~" "User %s has no home
directory" startup #[nil "…ѕ Ж=ѓЗИQ‚A
Й=ѓ3КЗЛМ#ѓ#Н‚AКЗЛО#ѓ/П‚AН‚A Р=ѓ=С‚AЗТQУФ
У‰#€ У=ѓiХЦЧЗШQ!\"Ф У‰#€ У=ѓh
) ѓ®Щ !Ъљѓ®Ы !‰ЬP$Э$!ѓЉ$‚•Э
!ѓ”
‚•Л‰ѓ­Ю
\"ѓ«Яа
#€бв!€
*%?…ЅЛ&ФгУ‰#))‡" [init-file-user system-type user-init-file-1
user-init-file otherfile source ms-dos "~" "/_emacs" windows-nt
directory-files nil "^\\.emacs\\(\\.elc?\\)?$" "~/.emacs"
"^_emacs\\(\\.elc?\\)?$" "~/_emacs" vax-vms "sys$login:.emacs" "/.emacs"
t load expand-file-name "init" file-name-as-directory "/.emacs.d"
file-name-extension "elc" file-name-sans-extension ".el" file-exists-p
file-newer-than-file-p message "Warning: %s is newer than %s" sit-for 1
"default" alt inhibit-default-init inhibit-startup-screen] 7]
(byte-code " €В‰‡" [inner init-file-had-error nil] 2) ((error
(byte-code "ЕЉЖЗ!q€ИЙК \"ЙЛ
@МN
AѓН‚ОПР
AС#$ИТУФ±€)ХЦ
@МN
Aѓ;Н‚<ОПЧ
AС#$€ЕШЗ!€)Щ)Е‡" [message-log-max user-init-file error pop-up-windows
init-file-had-error nil get-buffer-create "*Messages*" "

" format "An error has occurred while loading `%s':

" "%s%s%s" error-message ": " "" mapconcat #[(s) "БВ\"‡" [s
prin1-to-string t] 3] ", " "To ensure normal operation, you should
investigate and remove the
" "cause of the error in your initialization file. Start Emacs with
" "the `--debug-init' option to view a complete error backtrace.

" message "Error in init file: %s%s%s" prin1-to-string pop-to-buffer t]
10))) window-buffer lambda only deactivate-mark-hook file-exists-p
file-readable-p quietly-read-abbrev-file mapc #[(buffer) "rq€ … ВГ!)‡"
[buffer enable-multibyte-characters set-buffer-multibyte nil] 2]
buffer-list set-language-environment "EMAIL" "@" system-name boundp
saved-face 2 3 4 5 :foreground :background append (:weight bold) (:slant
italic) (:underline t) face-spec-set clear-face-cache after-init-hook
get-buffer "*scratch*" fundamental-mode tty-run-terminal-initialization
selected-frame substitute-command-keys "Memory exhausted--use
\\[save-some-buffers] then exit and restart Emacs" command-line-1
kill-emacs emacs-session-restore] 7]


14>emacs.exe!Ffuncall(int nargs=0x00000000, int * args=0x21bbf830) Line
3078 + 0xc
if (COMPILEDP (fun))
val = funcall_lambda (fun, numargs, args + 1);
debug_print((original_fun))
command-line

15> emacs.exe!Fbyte_code(int bytestr=0x011db7c8, int vector=0x811db7c0,
int maxdepth=0x00000006) Line 681
TOP = Ffuncall (op + 1, &TOP);
AFTER_POTENTIAL_GC ();
break;

16> emacs.exe!funcall_lambda(int fun=0x811db798, int nargs=0x00000000,
int * arg_vector=0x0082fcfc) Line 3221 + 0xe
val = Fbyte_code (AREF (fun, COMPILED_BYTECODE),
AREF (fun, COMPILED_CONSTANTS),
AREF (fun, COMPILED_STACK_DEPTH));

debug_print((fun))
#[nil "ѓЖЗ!‡И rЙq€
*КЛМНЛ!C#€О Пљѓ%И Р‰ѓO
@‰СТУ!И‰‰$€)
СТФ!И‰‰$€)
A‰„-*(Х=„ЦЧ!‰);ѓ~ШЩ)!ЪP!ШЩ !ЪP!љ„~ЫЬ)P*\"*)Э !Р+ЮЋЯ €*абв\"€гРд\"‰$;ѓҐе$P$‚Л,address@hidden"ѓБ-$.A‰.„°*$…ЦЫ$*\")‡"
[command-line-processed default-directory dir
backup-by-copying-when-mismatch load-path tail message "Back to top
level." t "*Messages*" put user-full-name standard-value default-value
user-uid 0 nil load expand-file-name "subdirs.el" "leim-list.el" vax-vms
getenv "PWD" file-attributes file-name-as-directory "." delete "PWD="
abbreviate-file-name ((byte-code "Ж! „.
ѓ. З=ѓ#ИЙ
!К\"€ЛМ
!!НP‚-МОП
Р С $! „>ТУ!€
ѓ>ТЕ!€„TѓT„TФ=ѓhХЦ!ѓ]Ц €ХЧ!ѓhЧШ !€ХЩ!ѓqЩ €ѓzТЪ!€ „‡Ы ѓ‡Ь €Ж‡"
[default-directory auto-save-list-file-name auto-save-list-file-prefix
system-type inhibit-startup-hooks term-setup-hook abbreviate-file-name
ms-dos make-directory file-name-directory t make-temp-name
expand-file-name "~" format "%s%d-%s~" emacs-pid system-name run-hooks
emacs-startup-hook pc fboundp frame-notice-user-settings
frame-set-background-mode selected-frame font-menu-add-default
window-setup-hook display-popup-menus-p precompute-menubar-bindings
frame-initial-frame initial-window-system noninteractive
menubar-bindings-done] 6)) command-line setenv "TERM" "dumb"
frame-parameter display "DISPLAY=" string-match "\\`DISPLAY="
system-type pwd process-environment menubar-bindings-done
initial-environment varval --cl-dolist-temp--] 6]

17> emacs.exe!apply_lambda(int fun=0x811db798, int args=0x212fc400, int
eval_flag=0x00000001) Line 3146
backtrace_list->evalargs = 0;
tem = funcall_lambda (fun, XINT (numargs), arg_vector);

/* Do the debug-on-exit now, while arg_vector still exists. */
if (backtrace_list->debug_on_exit)
tem = call_debugger (Fcons (Qexit, Fcons (tem, Qnil)));
debug_print((fun))
#[nil "ѓЖЗ!‡И rЙq€
*КЛМНЛ!C#€О Пљѓ%И Р‰ѓO
@‰СТУ!И‰‰$€)
СТФ!И‰‰$€)
A‰„-*(Х=„ЦЧ!‰);ѓ~ШЩ)!ЪP!ШЩ !ЪP!љ„~ЫЬ)P*\"*)Э !Р+ЮЋЯ €*абв\"€гРд\"‰$;ѓҐе$P$‚Л,address@hidden"ѓБ-$.A‰.„°*$…ЦЫ$*\")‡"
[command-line-processed default-directory dir
backup-by-copying-when-mismatch load-path tail message "Back to top
level." t "*Messages*" put user-full-name standard-value default-value
user-uid 0 nil load expand-file-name "subdirs.el" "leim-list.el" vax-vms
getenv "PWD" file-attributes file-name-as-directory "." delete "PWD="
abbreviate-file-name ((byte-code "Ж! „.
ѓ. З=ѓ#ИЙ
!К\"€ЛМ
!!НP‚-МОП
Р С $! „>ТУ!€
ѓ>ТЕ!€„TѓT„TФ=ѓhХЦ!ѓ]Ц €ХЧ!ѓhЧШ !€ХЩ!ѓqЩ €ѓzТЪ!€ „‡Ы ѓ‡Ь €Ж‡"
[default-directory auto-save-list-file-name auto-save-list-file-prefix
system-type inhibit-startup-hooks term-setup-hook abbreviate-file-name
ms-dos make-directory file-name-directory t make-temp-name
expand-file-name "~" format "%s%d-%s~" emacs-pid system-name run-hooks
emacs-startup-hook pc fboundp frame-notice-user-settings
frame-set-background-mode selected-frame font-menu-add-default
window-setup-hook display-popup-menus-p precompute-menubar-bindings
frame-initial-frame initial-window-system noninteractive
menubar-bindings-done] 6)) command-line setenv "TERM" "dumb"
frame-parameter display "DISPLAY=" string-match "\\`DISPLAY="
system-type pwd process-environment menubar-bindings-done
initial-environment varval --cl-dolist-temp--] 6]


18>emacs.exe!Feval(int form=0xa138a6c0) eval.c Line 2405 + 0xb
if (COMPILEDP (fun))
val = apply_lambda (fun, original_args, 1);
debug_print((original_fun))
normal-top-level

19> emacs.exe!top_level_2() Line 1378 + 0xb C

Thanks!
--
Andrey



In a rush? Get real-time answers with Windows Live Messenger.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]