texmacs-dev
[Top][All Lists]
Advanced

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

[Texmacs-dev] Re: Debugging memory management in TeXmacs


From: Lionel Elie Mamane
Subject: [Texmacs-dev] Re: Debugging memory management in TeXmacs
Date: Mon, 23 Oct 2006 13:52:03 +0200
User-agent: Mutt/1.5.13 (2006-08-11)

On Mon, Oct 23, 2006 at 11:49:02AM +0200, Lionel Elie Mamane wrote:
> On Sun, Oct 22, 2006 at 10:53:43PM +0200, Joris van der Hoeven wrote:
>> On Fri, Oct 20, 2006 at 11:45:27AM +0200, Lionel Elie Mamane wrote:

>>>>> If found a reproducible way to crash TeXmacs, (...) The error is
>>>>> that TeXmacs call free() on a pointer that was not returned by
>>>>> malloc() (...)

>>>> (...) I get a real backtrace now.

>> Before I take a closer look, I would like to make sure that you are
>> just using the TeXmacs protocol and nothing else.

>> In that case, it could be a good idea to run with --debug-io and
>> see at which point things go wrong.

> That information may have been lost in noise in the deluge of emails
> I sent, so I repeat (and extend) it here: The problem happens before
> any IO (communication with the plug-in process) happens for this
> particular request (obviously, IO happened to serve previous
> requests.

This is confirmed when running with --debug-io: I see the IO happening
to serve the _previous_ requests (this is all _one_ request):

 [INPUT][COMMAND](begin )
 Parameter A:Set.
 [COMMAND](end )

then I see the answer:

 
[BEGIN]scheme:[BEGIN]scheme:[BEGIN]command:(fold-previous-output)[END][BEGIN]prompt#[BEGIN]scheme:(concat
 " <less> " (coq-state #f "3" "(list)" "0")[END][BEGIN]command:(coq-state-set! 
'open-prfs (list))[END][BEGIN]command:(coq-state-set! 'cur-prf 
#f)[END][BEGIN]command:(coq-state-set! 'global-state 
3)[END][BEGIN]command:(coq-state-set! 'local-state 
0)[END][BEGIN]command:(set!-coq-position-cursor)[END][END][BEGIN]scheme:(unfolded
 "" (document "A is assumed" )[END][END][END]

I then launch the second request (by typing "enter") and I don't see
any more IO, only:

 *** glibc detected *** double free or corruption (out): 0x0000000001255b50 ***
 Aborted

Note that my serializer is of the form:

 (:serializer ,(lambda (lan t) (display "Entering 
serializer\n")(flush-all-ports)
                        (string-append
                            (...)
                            (...)
                            (...)
                            (...))))

and I don't see the "entering serializer" message.

-- 
Lionel




reply via email to

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