<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      秋·風(fēng)

        博客園 :: 首頁 :: 博問 :: 閃存 :: 新隨筆 :: 聯(lián)系 :: 訂閱 訂閱 :: 管理 ::
      1、勾選project-->Options-->debugging-->other debugging info
      注意:一定要勾上Generate info for the debugger(slower/increases exe-size),否則展開后看不到行號(hào)信息。


      在lpr文件添加:

      SetHeapTraceOutput('heaptrc.trc')

      如果不保存為文件,將在屏幕顯示相應(yīng)的內(nèi)存泄漏信息。

      program Project1;
      
      {$mode objfpc}{$H+}
      
      uses
        {$IFDEF UNIX}
        cthreads,
        {$ENDIF}
        {$IFDEF HASAMIGA}
        athreads,
        {$ENDIF}
        Interfaces, // this includes the LCL widgetset
        Forms, Unit1, LanZouAPI
        { you can add units after this };
      
      {$R *.res}
      
      begin
        SetHeapTraceOutput('heaptrc.trc');//將Heapttrc的輸出保存為日志文件
        RequireDerivedFormResource:=True;
        Application.Scaled:=True;
        {$PUSH}{$WARN 5044 OFF}
        Application.MainFormOnTaskbar:=True;
        {$POP}
        Application.Initialize;
        Application.CreateForm(TForm1, Form1);
        Application.Run;
      end.

      2、利用日志文件查看具體出錯(cuò)位置對(duì)應(yīng)的代碼行

      1)打開View-->Leaks and Traces


      2)打開日志文件:

       點(diǎn)"Resolve"會(huì)提示打開相應(yīng)的文件(如果你的調(diào)試信息包含在可執(zhí)行文件,就選可執(zhí)行文件。如果是外部調(diào)試信息 就選外部調(diào)試信息的gdb文件)

       展開相應(yīng)的call Trace 列表然后雙擊相應(yīng)對(duì)行就可以在lazarus IDE打開對(duì)應(yīng)文件位置,這就是存在內(nèi)存泄漏的代碼。

       
      ======================================================================================
      以下是阿D處理并顯示出錯(cuò)信息的方法:

      //顯示錯(cuò)誤信息
      procedure DumpExceptionCallStack(E: Exception);
      var
        I: integer;
        Frames: PPointer;
        Report: string;
      begin
        Report := 'Program exception! ' + LineEnding + 'Stacktrace:' +
          LineEnding + LineEnding;
        if E <> nil then
        begin
          Report := Report + 'Exception class: ' + E.ClassName + LineEnding +
            'Message: ' + E.Message + LineEnding;
        end;
        Report := Report + BackTraceStrFunc(ExceptAddr);
        Frames := ExceptFrames;
        for I := 0 to ExceptFrameCount - 1 do
          Report := Report + LineEnding + BackTraceStrFunc(Frames[I]);
        ShowMessage(Report);
        Halt; // End of program execution
      end;

       

      procedure TForm1.Button4Click(Sender: TObject);
      begin
        try
          raise Exception.Create('Test error');
        except
          on E: Exception do
            DumpExceptionCallStack(E);
        end;
      end;

       

      ExceptFrameCount              //異常回溯中包含的幀數(shù)
      ExceptFrames                  //返回當(dāng)前異常堆棧幀
      ExceptAddr                    //當(dāng)前異常地址.
      ExceptObject                  //當(dāng)前異常對(duì)象.
      ExceptProc                    //當(dāng)前異常處理程序.
      get_caller_addr(get_frame);   // 得到調(diào)用者的地址
      get_caller_frame(get_frame);  // 得到調(diào)用者的棧幀

       

      以上方法是從谷草及阿D那學(xué)到的,謝謝2位的無私分享!

      posted on 2025-05-26 07:07  秋·風(fēng)  閱讀(191)  評(píng)論(2)    收藏  舉報(bào)
      主站蜘蛛池模板: 四虎影视库国产精品一区| 色老头亚洲成人免费影院| a∨变态另类天堂无码专区| 大尺度国产一区二区视频| 免费看亚洲一区二区三区| 国产亚洲欧洲AⅤ综合一区| 免费国产拍久久受拍久久| 一区二区不卡国产精品| 午夜无码免费福利视频网址| 国产免费又黄又爽又色毛| 中美日韩在线一区黄色大片| 男女性高爱潮免费网站| 亚洲无线码中文字幕在线| 色爱综合激情五月激情| 日韩在线观看精品亚洲| 黑人异族巨大巨大巨粗| 97人人添人人澡人人澡人人澡| 中文午夜乱理片无码| 欧洲无码一区二区三区在线观看| 囯产精品久久久久久久久久妞妞 | 性欧美大战久久久久久久| 日韩av一中美av一中文字慕| 日韩在线成年视频人网站观看| 久久99久国产精品66| 亚洲一区二区三区十八禁| 99久久综合精品五月天| 撩起胸让我的?蹭来蹭去| 特级欧美AAAAAAA免费观看| 在线涩涩免费观看国产精品| 国内熟妇人妻色在线三级| 免费a级毛片18以上观看精品| jlzz大jlzz大全免费| 日本韩国日韩少妇熟女少妇| 蜜桃av亚洲精品一区二区| 国产成人高清在线重口视频| 国产日韩av二区三区| 滨海县| 中文字幕人妻中出制服诱惑 | 老司机精品影院一区二区三区| 九九热视频在线观看精品| 久久精品亚洲热综合一区二区|