DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: ZMskyuza
今日帖子: 24
在线用户: 7
导航: 论坛 -> DELPHI技术 斑竹:liumazi,sephil  
作者:
男 mp654kk (mp654kk) ▲△△△△ -
普通会员
2023/5/14 1:12:56
标题:
新手求助调试的问题 浏览:774
加入我的收藏
楼主: 调试的时候报错 点break停在了库函数的页面比如system.classes这个单元的页面 并没有停在我的unit1的页面 这样很难找到具体哪里出错 请问如何让它停在我自己的代码处
----------------------------------------------
-
作者:
男 emailx45 (emailx45) ▲▲▲▲△ -
普通会员
2023/5/14 6:15:40
1楼: How to stop in your Breakpoint?

1) you need have the "source  .PAS" file and run your app in DEBUG mode!!!
1.1) if you want stop in any other ".PAS" (for example, in another library third-party) then, you need have the "source .PAS files" too!
1.2) if you want stop in RTL/VCL library, just open the file .PAS (ex. System.Classes.pas), mark the line with breakpoint, as you done in your code!

2) you need mark (breakpoint it) where you need stop before execute the code

ex.:

   if ( a = b ) then    <---- breakpoint here
      ShowMessage( ' a = b '); 

3) if you are try verify where the code is really been executed, then, you can press the "F7" key, when the breakpoint was stopped

ex.:

   if ( a =  StrToInt( b ) ) then    <---- breakpoint here, now press F7
      ShowMessage( ' a = b '); 

4) Warning: in System functions, there is not sources!!! then, you can not stop in breakpoint!!!

5) when you dont have the source files, DCU (Debug mode), the IDE show the "CPU Window" with assembly mode!
----------------------------------------------
The higher the degree, the greater the respect given to the humblest!RAD 11.3
作者:
男 mp654kk (mp654kk) ▲△△△△ -
普通会员
2023/5/14 11:45:53
2楼: @emailx45 断点我懂 我的意思不是在我设置的断点处停下 我预先没有设置断点 程序报错需要在报错的地方停下
----------------------------------------------
-
作者:
男 pcplayer (pcplayer) ★☆☆☆☆ -
普通会员
2023/5/14 11:47:09
2楼: 停下来的时候,看 IDE 左边的 stack,调用栈。

它停下来的位置是引发异常的位置。引发异常,不一定是出错。前面一行代码错了,但是,可能后面第 7 行代码引发异常。因此它停在第 7 行那里。你看 stack,就能看这个停下来的地方,前面调用的是什么代码。一行一行往前看,可能就会看到出错的那个代码。
----------------------------------------------
-
作者:
男 mp654kk (mp654kk) ▲△△△△ -
普通会员
2023/5/14 16:09:23
3楼: @pcplayer 调用栈列表里面下面的代码是已经执行过的还是准备执行的呢
----------------------------------------------
-
作者:
男 1111111112 (1111111112) ▲△△△△ -
普通会员
2023/5/14 16:58:10
4楼: 我盲猜 你是运行的时候点击暂停?
又或者bug 在系统单元自动停下了(不对啊有个弹窗才对)?(你代码有问题)
如果调试不想进系统单元 工程设置 有个 user debug 之类的开关 开起来.或者关闭
如果你要调试自己写的代码 就要断点了.F5(小红点)?可能记错了 
也不知瞎鸡/巴猜对没,
----------------------------------------------
-
作者:
男 pcplayer (pcplayer) ★☆☆☆☆ -
普通会员
2023/5/14 18:16:03
5楼: 3 楼,你可以自己写个见到的测试代码,看看那个调用栈。
----------------------------------------------
-
作者:
男 mp654kk (mp654kk) ▲△△△△ -
普通会员
2023/5/14 23:18:04
6楼: @1111111112 是这意思,谢谢.
@pcplayer 好的,谢谢.
为啥安卓调试的时候无法设置断点呢,点了是红色的×
----------------------------------------------
-
作者:
男 fk_kof (beginner) ★☆☆☆☆ -
普通会员
2023/5/15 8:25:00
7楼: 在你要调试的断点前面showmessage什么的弹个框。没到断点直接拼命按F9
----------------------------------------------
-
作者:
男 doersoft (hnysoft.com) ★☆☆☆☆ -
普通会员
2023/5/16 8:11:31
8楼: 1.保证工程当前为debug模式.
2.如果已经保存的工程,工程保存路径中不要有中文名字.
3.还是不行,新建新的工程,将老工程源码放到新工程中调试.
4.还是不行,重装os+delphi
----------------------------------------------
delphi|vue|golang hnysoft|hnyerp+mes+srm
作者:
男 sxqwhxq (步惊云) ★☆☆☆☆ -
普通会员
2023/5/16 23:12:02
9楼: 用了delphi很多年了,只会showmessage('');排查错误,好像可以打开大部分问题。
请大师们讲讲怎么调试,谢谢!
----------------------------------------------
-
作者:
男 mp654kk (mp654kk) ▲△△△△ -
普通会员
2023/9/1 18:45:00
10楼: @sxqwhxq 我也是 碰到出错就停在了汇编那里 自己也看不懂 不知道怎么停在自己写的代码那里 只能设断点一个一个排除比较麻烦
----------------------------------------------
-
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行54.6875毫秒 RSS