You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by hw...@apache.org on 2010/06/08 23:11:54 UTC

svn commit: r952822 - in /subversion/branches/1.6.x: ./ CHANGES STATUS subversion/libsvn_subr/win32_crashrpt.c subversion/libsvn_subr/win32_crashrpt_dll.h

Author: hwright
Date: Tue Jun  8 21:11:54 2010
New Revision: 952822

URL: http://svn.apache.org/viewvc?rev=952822&view=rev
Log:
Reintegrate the 1.6.x-r38836 branch into 1.6.x:

 * r876032, r876104, r878447, r878910, r878911, r878916
   Several fixes to the Win32 exception handler. This change also makes it
   available on Windows Vista and 7 where it was previously blocked by a
   version check.
   Justification:
     This exception handler is a valuable debugging tool for users who don't
     have development tools installed. (Most users on Windows).
   Notes:
     Most of these revisions cancel out each other. The real changes are in
     r878447 (removing version check) and r878910,r878916 (fixing formatting
     specifier). It's probably easier to review the combined patch than the
     individual revisions.
   Branch:
     ^/subversion/branches/1.6.x-r38836.
   Votes:
     +1: rhuijben, steveking, lgo
     +0: pburba - I don't have a Vista or Win7 box to try this out on, but it
         works fine on my XP box.

Modified:
    subversion/branches/1.6.x/   (props changed)
    subversion/branches/1.6.x/CHANGES   (props changed)
    subversion/branches/1.6.x/STATUS
    subversion/branches/1.6.x/subversion/libsvn_subr/win32_crashrpt.c
    subversion/branches/1.6.x/subversion/libsvn_subr/win32_crashrpt_dll.h

Propchange: subversion/branches/1.6.x/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Jun  8 21:11:54 2010
@@ -23,6 +23,7 @@
 /subversion/branches/1.6.x-r38222:878299-878891
 /subversion/branches/1.6.x-r38572:878661-878666
 /subversion/branches/1.6.x-r38799:878880-878917
+/subversion/branches/1.6.x-r38836:878911-952818
 /subversion/branches/1.6.x-r38927:879002-879176
 /subversion/branches/1.6.x-r39019:879132-895676
 /subversion/branches/1.6.x-r39109:879131
@@ -71,4 +72,4 @@
 /subversion/branches/tc_url_rev:874351-874483
 /subversion/branches/tree-conflicts:868291-873154
 /subversion/branches/tree-conflicts-notify:873926-874008
-/subversion/trunk:875965,875968,876004,876012,876017,876019,876022,876024,876041-876042,876048,876051,876055-876056,876059,876083,876091,876097,876101,876109,876123-876125,876129,876132,876138,876160,876167,876175,876180,876185,876205,876223-876225,876230,876233,876245,876252,876256,876283,876287,876312,876326-876327,876330,876366,876372,876374,876376,876383,876386,876442,876456-876457,876462-876464,876467,876469,876480,876486,876495-876497,876516-876518,876524,876526,876583,876601,876614,876628,876633,876641,876659,876687,876689,876705,876715,876726,876760,876763,876794,876804,876815-876816,876821,876825,876837,876840-876841,876843,876849,876857-876858,876862,876873,876890,876897,876905,876908,876925,876931,876934,876948-876949,876953,876987,876993,877011,877014,877016,877028-877029,877038,877119,877127,877146,877157,877191,877195,877203,877211,877230,877234,877237,877243,877249,877259,877261,877304,877319,877407,877437,877441-877442,877453,877459,877472,877544,877553,87756
 5,877568,877573,877593,877595,877597,877601,877612,877665,877667,877681,877692,877696,877701,877720,877730,877784,877793,877797,877809,877815,877819,877821,877842,877848,877853,877867,877869,877873,877901,877909,877916,877931,877942,877953,877964,877968,877970,877981-877982,878005,878013,878015,878020,878046,878053,878062,878074,878080,878089,878091,878093,878095,878127,878129,878131,878142,878173-878176,878216,878240,878242,878255,878269,878272,878279,878296-878297,878303,878321,878335,878338,878341,878343,878353,878364,878367-878368,878385,878399,878423,878426,878462,878484,878491,878498,878532,878595,878646,878659,878673,878682-878683,878690-878691,878693,878723,878760-878761,878873,878875,878877,878879,878905,878915,878924-878925,878946,878949,878955,878960,878970,878981,879001,879033,879056,879074,879076,879081-879082,879093,879105,879126,879148,879170,879198-879199,879201,879271,879293,879357,879375-879376,879403,879631,879635-879636,879688,879709-879711,879747,879954,
 879961,880082,880095,880105,880162,880226,880274-880275,880370,880450,880461,880474,880525-880526,880552,881905,884842,886164,886197,888715,888979,889081,889840,891672,892050,892085,895514,895653,896522,896915,898963,899826,899828,900797,901752,902093,904301,904394,904594,905303,905326,906256,906305,906587,908980-908981,917640,918211,922516,923389,923391,926151,926167,927323,927328,931209,931211,931392,931568,932942,933299,935992,935996,937610,944635
+/subversion/trunk:875965,875968,876004,876012,876017,876019,876022,876024,876032,876041-876042,876048,876051,876055-876056,876059,876083,876091,876097,876101,876104,876109,876123-876125,876129,876132,876138,876160,876167,876175,876180,876185,876205,876223-876225,876230,876233,876245,876252,876256,876283,876287,876312,876326-876327,876330,876366,876372,876374,876376,876383,876386,876442,876456-876457,876462-876464,876467,876469,876480,876486,876495-876497,876516-876518,876524,876526,876583,876601,876614,876628,876633,876641,876659,876687,876689,876705,876715,876726,876760,876763,876794,876804,876815-876816,876821,876825,876837,876840-876841,876843,876849,876857-876858,876862,876873,876890,876897,876905,876908,876925,876931,876934,876948-876949,876953,876987,876993,877011,877014,877016,877028-877029,877038,877119,877127,877146,877157,877191,877195,877203,877211,877230,877234,877237,877243,877249,877259,877261,877304,877319,877407,877437,877441-877442,877453,877459,877472,87754
 4,877553,877565,877568,877573,877593,877595,877597,877601,877612,877665,877667,877681,877692,877696,877701,877720,877730,877784,877793,877797,877809,877815,877819,877821,877842,877848,877853,877867,877869,877873,877901,877909,877916,877931,877942,877953,877964,877968,877970,877981-877982,878005,878013,878015,878020,878046,878053,878062,878074,878080,878089,878091,878093,878095,878127,878129,878131,878142,878173-878176,878216,878240,878242,878255,878269,878272,878279,878296-878297,878303,878321,878335,878338,878341,878343,878353,878364,878367-878368,878385,878399,878423,878426,878447,878462,878484,878491,878498,878532,878595,878646,878659,878673,878682-878683,878690-878691,878693,878723,878760-878761,878873,878875,878877,878879,878905,878910-878911,878915-878916,878924-878925,878946,878949,878955,878960,878970,878981,879001,879033,879056,879074,879076,879081-879082,879093,879105,879126,879148,879170,879198-879199,879201,879271,879293,879357,879375-879376,879403,879631,879635-
 879636,879688,879709-879711,879747,879954,879961,880082,880095,880105,880162,880226,880274-880275,880370,880450,880461,880474,880525-880526,880552,881905,884842,886164,886197,888715,888979,889081,889840,891672,892050,892085,895514,895653,896522,896915,898963,899826,899828,900797,901752,902093,904301,904394,904594,905303,905326,906256,906305,906587,908980-908981,917640,918211,922516,923389,923391,926151,926167,927323,927328,931209,931211,931392,931568,932942,933299,935992,935996,937610,944635

Propchange: subversion/branches/1.6.x/CHANGES
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Jun  8 21:11:54 2010
@@ -23,6 +23,7 @@
 /subversion/branches/1.6.x-r38222/CHANGES:878299-878891
 /subversion/branches/1.6.x-r38572/CHANGES:878661-878666
 /subversion/branches/1.6.x-r38799/CHANGES:878880-878917
+/subversion/branches/1.6.x-r38836/CHANGES:878911-952818
 /subversion/branches/1.6.x-r38927/CHANGES:879002-879176
 /subversion/branches/1.6.x-r39019/CHANGES:879132-895676
 /subversion/branches/1.6.x-r39109/CHANGES:879131

Modified: subversion/branches/1.6.x/STATUS
URL: http://svn.apache.org/viewvc/subversion/branches/1.6.x/STATUS?rev=952822&r1=952821&r2=952822&view=diff
==============================================================================
--- subversion/branches/1.6.x/STATUS (original)
+++ subversion/branches/1.6.x/STATUS Tue Jun  8 21:11:54 2010
@@ -275,22 +275,3 @@ Veto-blocked changes:
 
 Approved changes:
 =================
-
- * r876032, r876104, r878447, r878910, r878911, r878916
-   Several fixes to the Win32 exception handler. This change also makes it
-   available on Windows Vista and 7 where it was previously blocked by a
-   version check.
-   Justification:
-     This exception handler is a valuable debugging tool for users who don't
-     have development tools installed. (Most users on Windows).
-   Notes:
-     Most of these revisions cancel out each other. The real changes are in
-     r878447 (removing version check) and r878910,r878916 (fixing formatting
-     specifier). It's probably easier to review the combined patch than the
-     individual revisions.
-   Branch:
-     ^/subversion/branches/1.6.x-r38836.
-   Votes:
-     +1: rhuijben, steveking, lgo
-     +0: pburba - I don't have a Vista or Win7 box to try this out on, but it
-         works fine on my XP box.

Modified: subversion/branches/1.6.x/subversion/libsvn_subr/win32_crashrpt.c
URL: http://svn.apache.org/viewvc/subversion/branches/1.6.x/subversion/libsvn_subr/win32_crashrpt.c?rev=952822&r1=952821&r2=952822&view=diff
==============================================================================
--- subversion/branches/1.6.x/subversion/libsvn_subr/win32_crashrpt.c (original)
+++ subversion/branches/1.6.x/subversion/libsvn_subr/win32_crashrpt.c Tue Jun  8 21:11:54 2010
@@ -38,8 +38,6 @@ HANDLE dbghelp_dll = INVALID_HANDLE_VALU
 
 #define DBGHELP_DLL "dbghelp.dll"
 
-#define VERSION_DLL "version.dll"
-
 #define LOGFILE_PREFIX "svn-crash-log"
 
 /*** Code. ***/
@@ -445,8 +443,8 @@ write_function_detail(STACKFRAME64 stack
   if (SymFromAddr_(proc, stack_frame.AddrPC.Offset, &func_disp, pIHS) == TRUE)
     {
       fprintf(log_file,
-                    "#%d  0x%08x in %.200s (",
-                    nr_of_frame, stack_frame.AddrPC.Offset,  pIHS->Name);
+                    "#%d  0x%08I64x in %.200s (",
+                    nr_of_frame, stack_frame.AddrPC.Offset, pIHS->Name);
 
       /* restrict symbol enumeration to this frame only */
       ih_stack_frame.InstructionOffset = stack_frame.AddrPC.Offset;
@@ -465,7 +463,7 @@ write_function_detail(STACKFRAME64 stack
   else
     {
       fprintf(log_file,
-                    "#%d  0x%08x in (unknown function)",
+                    "#%d  0x%08I64x in (unknown function)",
                     nr_of_frame, stack_frame.AddrPC.Offset);
     }
 
@@ -584,64 +582,11 @@ is_debugger_present()
   return result;
 }
 
-/* Match the version of dbghelp.dll with the minimum expected version */
-static BOOL
-check_dbghelp_version(WORD exp_major, WORD exp_minor, WORD exp_build,
-                      WORD exp_qfe)
-{
-  HANDLE version_dll = LoadLibrary(VERSION_DLL);
-  GETFILEVERSIONINFOSIZE GetFileVersionInfoSize_ =
-         (GETFILEVERSIONINFOSIZE)GetProcAddress(version_dll,
-                                                "GetFileVersionInfoSizeA");
-  GETFILEVERSIONINFO GetFileVersionInfo_ =
-         (GETFILEVERSIONINFO)GetProcAddress(version_dll,
-                                            "GetFileVersionInfoA");
-  VERQUERYVALUE VerQueryValue_ =
-         (VERQUERYVALUE)GetProcAddress(version_dll, "VerQueryValueA");
-
-  DWORD version     = 0,
-        exp_version = MAKELONG(MAKEWORD(exp_qfe, exp_build),
-                               MAKEWORD(exp_minor, exp_major));
-  DWORD h = 0;
-  DWORD resource_size = GetFileVersionInfoSize_(DBGHELP_DLL, &h);
-
-  if (resource_size)
-    {
-      void *resource_data = malloc(resource_size);
-      if (GetFileVersionInfo_(DBGHELP_DLL, h, resource_size,
-                              resource_data) != FALSE)
-        {
-          void *buf = NULL;
-          UINT len;
-          if (VerQueryValue_(resource_data, "\\", &buf, &len))
-            {
-              VS_FIXEDFILEINFO *info = (VS_FIXEDFILEINFO*)buf;
-              version = MAKELONG(MAKEWORD(LOWORD(info->dwFileVersionLS),
-                                          HIWORD(info->dwFileVersionLS)),
-                                 MAKEWORD(LOWORD(info->dwFileVersionMS),
-                                          HIWORD(info->dwFileVersionMS)));
-            }
-        }
-      free(resource_data);
-    }
-
-   FreeLibrary(version_dll);
-
-   if (version >= exp_version)
-     return TRUE;
-
-   return FALSE;
-}
-
 /* Load the dbghelp.dll file, try to find a version that matches our
    requirements. */
 static BOOL
 load_dbghelp_dll()
 {
-  /* check version of the dll, should be at least 6.6.7.5 */
-  if (check_dbghelp_version(6, 6, 7, 5) == FALSE)
-    return FALSE;
-
   dbghelp_dll = LoadLibrary(DBGHELP_DLL);
   if (dbghelp_dll != INVALID_HANDLE_VALUE)
     {

Modified: subversion/branches/1.6.x/subversion/libsvn_subr/win32_crashrpt_dll.h
URL: http://svn.apache.org/viewvc/subversion/branches/1.6.x/subversion/libsvn_subr/win32_crashrpt_dll.h?rev=952822&r1=952821&r2=952822&view=diff
==============================================================================
--- subversion/branches/1.6.x/subversion/libsvn_subr/win32_crashrpt_dll.h (original)
+++ subversion/branches/1.6.x/subversion/libsvn_subr/win32_crashrpt_dll.h Tue Jun  8 21:11:54 2010
@@ -64,16 +64,6 @@ typedef PVOID (WINAPI * SYMFUNCTIONTABLE
 
 typedef DWORD64 (WINAPI * SYMGETMODULEBASE64)(HANDLE hProcess, DWORD64 dwAddr);
 
-/* public functions in version.dll */
-typedef DWORD (APIENTRY * GETFILEVERSIONINFOSIZE)
-                          (LPCSTR lptstrFilename, LPDWORD lpdwHandle);
-typedef BOOL  (APIENTRY * GETFILEVERSIONINFO)
-                          (LPCSTR lptstrFilename, DWORD dwHandle, DWORD dwLen,
-                           LPVOID lpData);
-typedef BOOL  (APIENTRY * VERQUERYVALUE)
-                          (const LPVOID pBlock, LPSTR lpSubBlock,
-                           LPVOID * lplpBuffer, PUINT puLen);
-
 /* public functions in kernel32.dll */
 typedef BOOL  (WINAPI * ISDEBUGGERPRESENT)(VOID);