harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Aleksey Ignatenko" <aleksey.ignate...@gmail.com>
Subject Re: [general]Snapshot cannot work on Win2K
Date Thu, 03 Aug 2006 07:06:51 GMT
Hi, I have no Win2K to check the issue, but I checked that dbghelp works
fine on WinXP and  Windows Server 2003.
I see trivial solution here, we can simply disable dbghelp usage for systems
older than WinXp. It could be done by _WIN32_WINNT macros:
_WIN32_WINNT>=0x0501 means WinXP and Windows Server 2003 server only.
I also want to note that callstack print is caused by some crash in VM
handled with crash_handler.
Proposed fix:

Index: nt_exception_filter.cpp

===================================================================

--- nt_exception_filter.cpp     (revision 427015)

+++ nt_exception_filter.cpp     (working copy)

@@ -29,9 +29,11 @@

 // Windows specific

 #include <string>

 #include <excpt.h>

+#if _WIN32_WINNT >= 0x0501

 #include <dbghelp.h>

 #include <windows.h>

 #pragma comment(linker, "/defaultlib:dbghelp.lib")

+#endif



 static inline void nt_to_vm_context(PCONTEXT context, Registers* regs)

 {

@@ -86,6 +88,7 @@

 }



 // CallStack print

+#if _WIN32_WINNT >= 0x0501

 #define CALLSTACK_DEPTH_LIMIT 100 // max stack length is 100 to prevent
getting into loop



 static void print_callstack(LPEXCEPTION_POINTERS nt_exception)

@@ -148,6 +151,10 @@



     fflush(stderr);

 }

+#define PRINT_CALLSTACK(Exc) print_callstack(Exc)

+#else

+#define PRINT_CALLSTACK(Exc)

+#endif



 /*

  * Information about stack

@@ -367,7 +374,7 @@



         if (!vm_get_boolean_property_value_with_default("vm.assert_dialog"))
{

             print_state(nt_exception, msg);

-            print_callstack(nt_exception);

+            PRINT_CALLSTACK(nt_exception);

             LOGGER_EXIT(-1);



         }

Best regards,
Aleksey.

On 8/2/06, Geir Magnusson Jr <geir@pobox.com> wrote:
>
>
>
> Paulex Yang wrote:
> > Geir Magnusson Jr wrote:
> >> Paulex Yang wrote:
> >>
> >>> Finally I found a stable win2k installation(still server edition with
> >>> SP4) , and installed Windows Platform SDK, but same error happens,
> then
> >>> I restarted it, but nothing changed:(, my Platform SDK was downloaded
> at
> >>> end of 2005, did I make any mistakes? Do I have to recompile DRLVM on
> >>> win2k?
> >>>
> >>>
> >>
> >> I think we need to find out whatever is requiring dbghelp and fix that.
>
> >>  I'm really hoping we don't need a separate snapshot for Win2k
> >>
> >> geir
> >>
> > +1 from me, from Aleksey's comments below, can I safely assume it is
> > done only by updating the nt_exception_filter.cpp? I did a search in
> > DRLVM trunk, this is the only file referring to dbghelp.h.
> >>
>
> Ooh.  Missed that.  Ok, so the problem is clear.  How do we want to
> handle this?
>
> I think it's important that on crashes, we get this info...
>
> geir
>
>
> >>> Aleksey Ignatenko wrote:
> >>>
> >>>> Hi, it looks like your friend needs to install Microsoft Platform SDK
> >>>> on his
> >>>> PC .
> >>>> Another solution is to download and update version of dbghelp library
> >>>> from
> >>>> msdn site.
> >>>> I didn't check the second solution.
> >>>> If you don't not succeed for some reason, simply modify
> >>>> nt_exception_filter.cpp file excluding lines:
> >>>> #include <dbghelp.h>,
> >>>> #pragma comment(linker, "/defaultlib:dbghelp.lib"),
> >>>> print_callstack function. It will disable call stack printing when
> >>>> crash
> >>>> happens.
> >>>>
> >>>> Aleksey.
> >>>>
> >>>>
> >>>>
> >>
> >>
> >
> >
>
> ---------------------------------------------------------------------
> Terms of use : http://incubator.apache.org/harmony/mailing.html
> To unsubscribe, e-mail: harmony-dev-unsubscribe@incubator.apache.org
> For additional commands, e-mail: harmony-dev-help@incubator.apache.org
>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message