秋·风

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  278 随笔 :: 0 文章 :: 308 评论 :: 20万 阅读
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
之前已修复fpdebug中文变量的Bug,但GDB还存在问题(提示:Invalid character xxxx in expression)

 

修复步骤:

打开lazarus/components/lazdebuggergdbmi/gdbmidebugger.pp,按红色代码修改。

TGDBMIExceptionInfo = record后添加function ischinese(s:string):string(1790行):
复制代码
  TGDBMIExceptionInfo = record
    ObjAddr: String;
    Name: String;
  end;

  function ischinese(s:string):string;
  var i:integer;
  begin
    result:=s;
    for i:=1 to length(s) do
    begin
      if ord(s[i])>127 then
      begin
        result:=''''+s+'''';
        break;
      end;
    end;
  end;

{ =========================================================================== }
{ Some win32 stuff }
{ =========================================================================== }
{$IFdef MSWindows}
var
  DebugBreakAddr: Pointer = nil;
复制代码

12468行

  if tfClassIsPointer in TargetInfo^.TargetFlags
  then AFlags := AFlags + [gtcfClassIsPointer];
  if FullTypeInfo
  then AFlags := AFlags + [gtcfFullTypeInfo];
  Result := TGdbType.CreateForExpression(ischinese(AExpression), AFlags, wdfDefault, ARepeatCount);
  while not Result.ProcessExpression do begin
    if Result.EvalError
    then break;

修改后重新编译lazarus。
这个方法在银河麒麟和UOS上测试通过。

 

posted on   秋·风  阅读(4)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
点击右上角即可分享
微信分享提示