[erlang-questions] Emacs and erlang shell arguments

Jani Hakala jahakala@REDACTED
Sat Sep 16 22:26:45 CEST 2006


"Vlad Dumitrescu" <vladdu55@REDACTED> writes:

> On 9/16/06, Jani Hakala <jahakala@REDACTED> wrote:
>> It's a pity that there seems to be no linux strace program
>> equivalent for windows.
>
> You mean like for example the one at
>
> http://www.softpedia.com/get/Programming/Debuggers-Decompilers-Dissasemblers/Strace%20NT.shtml
>
I now tested this one briefly.

In documentation it is said that
'- Does not trace child processes created by the traced process
 - Does not trace functions which are called by using GetProcAddress method'

This could mean that device drivers can't be traced if +A is used. 

Windows port of erlang is built so that is uses GetProcAddress in the
very beginning of erl.c in order to call win_erlexec. Also in the
inet_drv.c GetProcAddress is used and some sort of jumptable way to
call socket functions is used instead of direct calls.

It would be nice to hear why this actually is necessary.

I guess StraceNT program could work a little bit better otherwise so
that it might be possible to see what socket related functions
return. 

In any case StraceNT displays calls like LoadLibrary("beam.dll") 
"[T2644] LoadLibraryA(662b9830, 0, 24a758, 0, ...) = 71ab0000"

This doesn't look so good, I would except to see
LoadLibrary("beam.dll") 

I guess linux strace could also have some trouble if dlopen and dlsym
are used.

> or
>
> http://www.bindview.com/Services/RAZOR/Utilities/Windows/strace_readme.cfm
>
I found this one earlier and decided that I don't want to touch it. 
It requires changing 
 HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\EnforceWriteProtection

'This disables the kernel from checking for errant memory overwrites...'

Support for 'Windows XP' is said to be preliminary.

Jani Hakala



More information about the erlang-questions mailing list