亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? fastmm_fulldebugmode.dpr

?? 高效的內(nèi)存管理開源項目,完全取代BorladMM的內(nèi)存管理
?? DPR
?? 第 1 頁 / 共 2 頁
字號:
            end;
          end
          else
          begin
            {If the return address is invalid it implies this stack frame is
             invalid after all.}
            LNextFrame := LStackTop;
          end;
        end
        else
        begin
          {The return address is bad - this is not a valid stack frame}
          LNextFrame := LStackTop;
        end;
      end
      else
      begin
        {This is not a valid stack frame}
        LNextFrame := LStackTop;
      end;
      {Do not check intermediate entries if there are still frames to skip}
      if ASkipFrames <> 0 then
      begin
        Dec(ASkipFrames);
      end
      else
      begin
        {Check all stack entries up to the next stack frame}
        LStackAddress := LCurrentFrame + 8;
        while (AMaxDepth > 0)
          and (LStackAddress < LNextFrame) do
        begin
          {Get the return address}
          LReturnAddress := PCardinal(LStackAddress)^;
          {Is this a valid call site?}
          if IsValidCallSite(LReturnAddress) then
          begin
            AReturnAddresses^ := LReturnAddress;
            Inc(AReturnAddresses);
            Dec(AMaxDepth);
          end;
          {Check the next stack address}
          Inc(LStackAddress, 4);
        end;
      end;
      {Do the next stack frame}
      LCurrentFrame := LNextFrame;
    end;
    {Clear the remaining dwords}
    while (AMaxDepth > 0) do
    begin
      AReturnAddresses^ := 0;
      Inc(AReturnAddresses);
      Dec(AMaxDepth);
    end;
    {Restore the last Windows error code, since a VirtualQuery call may have
     modified it.}
    SetLastError(LLastOSError);
  end
  else
  begin
    {Exception handling is not available - do a frame based stack trace}
    GetFrameBasedStackTrace(AReturnAddresses, AMaxDepth, ASkipFrames);
  end;
end;

{-----------------------------Stack Trace Logging----------------------------}

{Gets the textual representation of the stack trace into ABuffer and returns
 a pointer to the position just after the last character.}
{$ifdef JCLDebug}
{Converts a cardinal to a hexadecimal string at the buffer location, returning
 the new buffer position.}
function CardinalToHexBuf(ACardinal: integer; ABuffer: PChar): PChar;
asm
  {On entry:
    eax = ACardinal
    edx = ABuffer}
  push ebx
  push edi
  {Save ACardinal in ebx}
  mov ebx, eax
  {Get a pointer to the first character in edi}
  mov edi, edx
  {Get the number in ecx as well}
  mov ecx, eax
  {Keep the low nibbles in ebx and the high nibbles in ecx}
  and ebx, $0f0f0f0f
  and ecx, $f0f0f0f0
  {Swap the bytes into the right order}
  ror ebx, 16
  ror ecx, 20
  {Get nibble 7}
  movzx eax, ch
  mov dl, ch
  mov al, byte ptr HexTable[eax]
  mov [edi], al
  cmp dl, 1
  sbb edi, -1
  {Get nibble 6}
  movzx eax, bh
  or dl, bh
  mov al, byte ptr HexTable[eax]
  mov [edi], al
  cmp dl, 1
  sbb edi, -1
  {Get nibble 5}
  movzx eax, cl
  or dl, cl
  mov al, byte ptr HexTable[eax]
  mov [edi], al
  cmp dl, 1
  sbb edi, -1
  {Get nibble 4}
  movzx eax, bl
  or dl, bl
  mov al, byte ptr HexTable[eax]
  mov [edi], al
  cmp dl, 1
  sbb edi, -1
  {Rotate ecx and ebx so we get access to the rest}
  shr ebx, 16
  shr ecx, 16
  {Get nibble 3}
  movzx eax, ch
  or dl, ch
  mov al, byte ptr HexTable[eax]
  mov [edi], al
  cmp dl, 1
  sbb edi, -1
  {Get nibble 2}
  movzx eax, bh
  or dl, bh
  mov al, byte ptr HexTable[eax]
  mov [edi], al
  cmp dl, 1
  sbb edi, -1
  {Get nibble 1}
  movzx eax, cl
  or dl, cl
  mov al, byte ptr HexTable[eax]
  mov [edi], al
  cmp dl, 1
  sbb edi, -1
  {Get nibble 0}
  movzx eax, bl
  mov al, byte ptr HexTable[eax]
  mov [edi], al
  {Return a pointer to the end of the string}
  lea eax, [edi + 1]
  {Restore registers}
  pop edi
  pop ebx
end;

function LogStackTrace(AReturnAddresses: PCardinal;
  AMaxDepth: Cardinal; ABuffer: PChar): PChar;
var
  LInd, LAddress: Cardinal;
  LNumChars: Integer;
  LInfo: TJCLLocationInfo;
  LTempStr: string;
begin
  Result := ABuffer;
  for LInd := 0 to AMaxDepth - 1 do
  begin
    LAddress := AReturnAddresses^;
    if LAddress = 0 then
      exit;
    Result^ := #13;
    Inc(Result);
    Result^ := #10;
    Inc(Result);
    Result := CardinalToHexBuf(LAddress, Result);
    {Get location info for the caller (at least one byte before the return
     address).}
    GetLocationInfo(Pointer(Cardinal(LAddress) - 1), LInfo);
    {Build the result string}
    LTempStr := ' ';
    if LInfo.SourceName <> '' then
      LTempStr := LTempStr + '[' + LInfo.SourceName + ']';
    if LInfo.UnitName <> '' then
      LTempStr := LTempStr + '[' + LInfo.UnitName + ']';
    if LInfo.ProcedureName <> '' then
      LTempStr := LTempStr + '[' + LInfo.ProcedureName + ']';
    if LInfo.LineNumber <> 0 then
      LTempStr := LTempStr + '[' + IntToStr(LInfo.LineNumber) + ']';
    {Return the result}
    if length(LTempStr) < 256 then
      LNumChars := length(LTempStr)
    else
      LNumChars := 255;
    StrLCopy(Result, PChar(LTempStr), LNumChars);
    Inc(Result, LNumChars);
    {Next address}
    Inc(AReturnAddresses);
  end;
end;
{$endif}

{$ifdef madExcept}
function LogStackTrace(AReturnAddresses: PCardinal;
  AMaxDepth: Cardinal; ABuffer: PChar): PChar;
begin
  {Needs madExcept 2.7i or madExcept 3.0a or a newer build}
  Result := madStackTrace.FastMM_LogStackTrace(
    AReturnAddresses,
    AMaxDepth,
    ABuffer,
    {madExcept stack trace fine tuning}
    false, //hide items which have no line number information?
    true,  //show relative address offset to procedure entrypoint?
    true,  //show relative line number offset to procedure entry point?
    false  //skip special noise reduction processing?
    );
end;
{$endif}

{$ifdef EurekaLog}
function LogStackTrace(AReturnAddresses: PCardinal; AMaxDepth: Cardinal; ABuffer: PChar): PChar;
begin
  {Needs EurekaLog 5.0.5 or a newer build}
  Result := ExceptionLog.FastMM_LogStackTrace(
    AReturnAddresses, AMaxDepth, ABuffer,
    {EurekaLog stack trace fine tuning}
    False, // Show the DLLs functions call.  <--|
           //                                   |-- See the note below!
    False, // Show the BPLs functions call.  <--|
    True  // Show relative line no. offset to procedure start point.
    );
// NOTE:
// -----
// With these values set both to "False", EurekaLog try to returns the best
// call-stack available.
//
// To do this EurekaLog execute the following points:
// --------------------------------------------------
// 1)...try to fill all call-stack items using only debug data with line no.
// 2)...if remains some empty call-stack items from the previous process (1),
//      EurekaLog try to fill these with the BPLs functions calls;
// 3)...if remains some empty call-stack items from the previous process (2),
//      EurekaLog try to fill these with the DLLs functions calls;
end;
{$endif}

{-----------------------------Exported Functions----------------------------}

exports
  GetFrameBasedStackTrace,
  GetRawStackTrace,
  LogStackTrace;

begin
{$ifdef JCLDebug}
  JclStackTrackingOptions := JclStackTrackingOptions + [stAllModules];
{$endif}
end.

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一区二区黄色| 久久女同性恋中文字幕| 日韩中文字幕不卡| 日韩午夜激情免费电影| 精品在线观看视频| 国产欧美一区二区三区鸳鸯浴 | 国v精品久久久网| 国产精品国产馆在线真实露脸| 97久久超碰国产精品电影| 亚洲影院在线观看| 日韩一区二区三区在线| 国产一区二区三区高清播放| 日本一区二区高清| 欧美在线视频全部完| 奇米精品一区二区三区在线观看 | 波多野结衣在线一区| 亚洲欧美日韩在线| 成人精品国产福利| 国产亚洲精品免费| 91丨porny丨国产入口| 亚洲成人动漫精品| 2024国产精品视频| 91天堂素人约啪| 日韩1区2区3区| 欧美国产丝袜视频| 欧美图区在线视频| 国产精品自拍av| 亚洲欧美日韩国产综合在线| 91精品久久久久久蜜臀| 高清不卡一区二区| 亚洲国产精品自拍| 久久久综合视频| 欧美亚洲一区二区在线| 美女免费视频一区| 中文字幕亚洲不卡| 91精品国产综合久久久久久久 | 免费在线视频一区| 国产精品电影一区二区三区| 91 com成人网| 成人的网站免费观看| 丝袜诱惑亚洲看片 | 久久精品视频一区| 欧美日韩国产成人在线免费| 国产精品亚洲视频| 亚洲成人av免费| 国产精品色眯眯| 欧美剧情电影在线观看完整版免费励志电影 | 国产色爱av资源综合区| 欧美日韩一区二区在线观看| 国产伦精品一区二区三区视频青涩 | 美女视频黄a大片欧美| 成人免费在线播放视频| 欧美一区二区视频免费观看| 99久久伊人网影院| 久久精品999| 一区二区三区日韩欧美精品| 欧美精品一区二区高清在线观看 | av一区二区不卡| 裸体健美xxxx欧美裸体表演| 亚洲色图欧洲色图婷婷| 精品乱码亚洲一区二区不卡| 在线观看日韩电影| 成人性色生活片| 久久av老司机精品网站导航| 亚洲在线观看免费| 国产精品久久久久久久久免费相片 | 日韩精品电影一区亚洲| 成人免费一区二区三区视频| 久久蜜桃一区二区| 日韩一区二区高清| 欧美丝袜丝交足nylons图片| 成人av片在线观看| 国产精品一区二区三区四区| 日本午夜一本久久久综合| 亚洲综合偷拍欧美一区色| 国产精品灌醉下药二区| 久久先锋影音av鲁色资源网| 91精品国产综合久久久久久久久久| 在线视频欧美精品| 91网站最新地址| 丰满放荡岳乱妇91ww| 韩国理伦片一区二区三区在线播放 | 日韩激情视频在线观看| 亚洲精品日日夜夜| 亚洲欧美经典视频| 综合在线观看色| 久久久久久久久久看片| 欧美成人伊人久久综合网| 777奇米成人网| 欧美天天综合网| 91久久线看在观草草青青| 99久久精品一区二区| 懂色一区二区三区免费观看 | 久久国产三级精品| 日韩黄色免费电影| 亚洲国产wwwccc36天堂| 亚洲一线二线三线久久久| 亚洲欧美偷拍卡通变态| 中文字幕五月欧美| 亚洲视频网在线直播| 国产精品视频一二| 国产精品福利影院| 中文字幕五月欧美| 国产精品美女久久福利网站| 欧美激情中文字幕| 中文幕一区二区三区久久蜜桃| 久久欧美中文字幕| 国产欧美日韩亚州综合| 中文文精品字幕一区二区| 国产免费成人在线视频| 中文字幕精品在线不卡| 国产精品传媒在线| 亚洲日本在线a| 亚洲综合一二三区| 亚洲va韩国va欧美va| 三级不卡在线观看| 日本亚洲三级在线| 精品一区二区在线看| 国产麻豆精品久久一二三| 国产成人在线色| 99久久精品99国产精品| 色婷婷精品大在线视频| 在线视频欧美精品| 91精品国产综合久久香蕉麻豆| 91精品国产91久久久久久最新毛片| 日韩亚洲欧美在线观看| 精品福利在线导航| 欧美韩国日本综合| 亚洲视频每日更新| 午夜视频久久久久久| 美女网站色91| 国产盗摄一区二区| 一本大道久久a久久综合| 欧美日韩免费观看一区二区三区 | 国产91在线看| 色成年激情久久综合| 欧美日韩国产一级二级| 精品欧美乱码久久久久久| 久久综合五月天婷婷伊人| 中文无字幕一区二区三区| 亚洲黄色小说网站| 免费av网站大全久久| 国产剧情一区二区| 一本一道久久a久久精品综合蜜臀| 91成人免费在线视频| 欧美日本在线播放| 日韩欧美国产三级| 国产精品久久国产精麻豆99网站| 亚洲一区二区免费视频| 蜜臀av性久久久久蜜臀aⅴ流畅| 国产一区二区在线看| 97久久精品人人澡人人爽| 7777精品伊人久久久大香线蕉超级流畅| 精品日韩一区二区三区免费视频| 国产精品三级在线观看| 一区二区三区在线观看欧美| 久久黄色级2电影| 91网站视频在线观看| 欧美一区三区二区| 国产精品午夜春色av| 亚洲v日本v欧美v久久精品| 国产激情视频一区二区在线观看| 色系网站成人免费| 日韩一区二区三区在线| 中文字幕一区二区三区视频| 婷婷中文字幕一区三区| 国产一区二区免费看| 欧美性xxxxxx少妇| 久久久午夜精品理论片中文字幕| 洋洋av久久久久久久一区| 国产在线播精品第三| 欧美熟乱第一页| 欧美国产精品劲爆| 日韩电影在线一区二区三区| 成人性生交大片免费看在线播放| 3751色影院一区二区三区| 中文字幕av一区二区三区| 亚洲电影一级片| av在线综合网| 精品国产成人在线影院| 亚洲图片欧美视频| 成人激情小说乱人伦| 日韩精品中文字幕一区| 夜色激情一区二区| 成人一区在线观看| 日韩写真欧美这视频| 尤物视频一区二区| 国产成人在线色| 日韩欧美一级二级三级| 亚洲韩国精品一区| 99re这里只有精品视频首页| 精品国产乱码久久| 午夜视频一区在线观看| 99精品视频一区二区三区| 日韩美女主播在线视频一区二区三区| 亚洲黄一区二区三区| 成人av在线播放网站| 精品福利二区三区| 日韩精品电影一区亚洲| 日本道在线观看一区二区|