Comment # 3 on bug 1166141 from
(In reply to Ismail D�nmez from comment #2)
> This is a wine bug, it doesn't crash here:

Compared with the time where this bug was reported, something has been changed
in the .dtors section, where destructers are collected. 

This test code

#include <stdio.h>

__attribute__((constructor)) 
static void constructor()
{
    fprintf(stderr, "constructor\n");
    int *p = (int *)0x403004;
    fprintf(stderr, "*%p -> %08x\n", p, *p);
    fprintf(stderr, "*%p -> %08x\n", p+1, *(p+1));
}

__attribute__((destructor))
static void destructor() {
    fprintf(stderr, "destructor\n");
}

int main()
{
    fprintf(stderr, "main\n");
    return 0;
}

now do not crash and prints 

> wine ./test.exe 
constructor
*00403004 -> 004027a4
*00403008 -> ffffffff
main
destructor


where 004027a4 points to 
004027a4 <.dtors>:
  4027a4:    d7                       xlat   %ds:(%ebx)
  4027a5:    15 40 00 00 00           adc    $0x40,%eax

which is exactly the destructor function

004015d7 <_destructor>:
  4015d7:    55                       push   %ebp
  4015d8:    89 e5                    mov    %esp,%ebp
  4015da:    83 ec 18                 sub    $0x18,%esp

checked with wine version 4.1

I'm going to check on some other platform, where I had the issue too. 

BTW: I reported that with wine because it is the easist way to reproduce.
Initial I recognized that issue by running umbrello cross builds on native
Windows.


You are receiving this mail because: