Changeset 2688


Ignore:
Timestamp:
5/25/2012 1:34:41 AM (2 years ago)
Author:
lowjoel
Message:

Factor out the Stack Frame parsing code to the GetStackFrameInformation? function.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/website/scripts/blackbox/upload.php

    r2686 r2688  
    88function GetFunctionNameFromStackTrace($line) 
    99{ 
     10    $result = GetStackFrameInformation($line); 
     11    return $result->function; 
     12} 
     13 
     14function GetStackFrameInformation($line) 
     15{ 
     16    //at Eraser.Program.OnGUIInitInstance(Object sender) in D:\Development\Projects\Eraser 6.2\Eraser\Program.cs:line 191 
    1017    $matches = array(); 
     18    $function = $file = $line = null; 
    1119    if (preg_match('/^([^   ]+) (.*) ([^    ]+) (.*):([^    ]+) ([0-9]+)/', $line, $matches)) 
    1220    { 
     21        $function = $matches[2]; 
     22        $file = $matches[4]; 
     23        $line = intval($matches[6]); 
    1324    } 
    1425    else if (preg_match('/^([^  ]+) (.*)/', $line, $matches)) 
    1526    { 
     27        $function = $matches[2]; 
    1628    } 
    17      
    18     return $matches[2]; 
     29 
     30    return (object)array('function' => $function, 'file' => $file, 'line' => $line); 
    1931} 
    2032 
     
    103115                continue; 
    104116             
    105             //at Eraser.Program.OnGUIInitInstance(Object sender) in D:\Development\Projects\Eraser 6.2\Eraser\Program.cs:line 191 
    106             $matches = array(); 
    107             $function = $file = $line = null; 
    108             if (preg_match('/^([^   ]+) (.*) ([^    ]+) (.*):([^    ]+) ([0-9]+)/', $stackFrame, $matches)) 
    109             { 
    110                 $function = $matches[2]; 
    111                 $file = $matches[4]; 
    112                 $line = intval($matches[6]); 
    113             } 
    114             else if (preg_match('/^([^  ]+) (.*)/', $stackFrame, $matches)) 
    115             { 
    116                 $function = $matches[2]; 
    117             } 
     117            $stackFrameInfo = GetStackFrameInformation($stackFrame); 
    118118 
    119119            $stackFrameInsert->bindParam(1, $exceptionId); 
    120120            $stackFrameInsert->bindParam(2, $stackIndex); 
    121             $stackFrameInsert->bindParam(3, $function); 
    122             $stackFrameInsert->bindParam(4, $file); 
    123             $stackFrameInsert->bindParam(5, $line); 
     121            $stackFrameInsert->bindParam(3, $stackFrameInfo->function); 
     122            $stackFrameInsert->bindParam(4, $stackFrameInfo->file); 
     123            $stackFrameInsert->bindParam(5, $stackFrameInfo->line); 
    124124            try 
    125125            { 
Note: See TracChangeset for help on using the changeset viewer.