DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: muran123
今日帖子: 10
在线用户: 18
导航: 论坛 -> DELPHI技术 斑竹:liumazi,sephil  
作者:
男 sbamwdx (黑龙) ★☆☆☆☆ -
盒子活跃会员
2019/5/8 23:59:25
标题:
xe10 + windows 10 无法断点调试 浏览:418
加入我的收藏
楼主: 由于现在新款电脑都标配windows10 ,有些已经不再提供windows 7的驱动,根源是新的硬件只支持UEFI的引导,不再支持Legacy+MBR引导,为此我们都被逼使用windows 10 系统。
问题来了: 本人用xe 10.1,  xe 10.2 , xe 10.3  三个版本新建工程项目都将面临一个相当蛋疼的问题---->死在断点上,IDE无法断点调试,当然如果直接从工程文件处断点,或在form create事件处断点,则不会死,然而在线程中的断点,或加了部分代码后,或在运行中随机找一处代码断点,IDE必死,特征代码如下:

  TThread.CreateAnonymousThread( // 创建一个单线程,完成一些任务
      procedure
      var
         mSql:string;
      begin
          。。。。此处点必挂
      end).start;

  设置过以下样式后,后面任何地方断点都会挂掉。
  SetWindowLong(application.Handle, GWL_EXSTYLE, GetWindowLong(application.Handle, GWL_EXSTYLE) or
    WS_EX_TOOLWINDOW and not WS_EX_APPWINDOW);

只要IDE挂过一次,就只有重启电脑方面恢复正常一小段时间,否则连在工程文件中的断点都无法进行。
特别申明:同一系统下安装了xe10  与 vs 2015 ,则xe10 极度不稳定(任何地方打断点都高频死机),而vs2015则正常

下面说一下本人的硬件配置: 
分别在三种电脑下出现如此问题: 
1:macbook pro 的windows 10 企业版虚拟机下,macbook pro 的双系统windows 10 企业版
2:  IBM T460  16G内存/1T 机械硬盘 windows 10 企业版
3:小米 pro 15.6 顶配版 16G内存+1.2T固态硬盘,装过系统  windows 10 企业版 ,windows 10 专业版

以上硬件与操作系统环境,我们购买过两餐 xe10 的企业版正版(5.8万/套),上面装的操作系统分别用过ghost版,MSDN纯净版,使用过激活工具激活,后面是直接购买正版序列号激活。
先后安装操作系统不下10次,均会出现上述问题。

特别申明一下: D7 在以上所有环境下均很正常,同时本人安装了IntelliJ IDEA,Android Studio,Vs 2015 ,Delphi 7 , Xe 10 , 唯独只有xe10 不正常,为了排除IDE冲突性,还分别按顺序安装测试过,发现只与vs 2015有关。


本人已经用delphi 10余年,现在感觉xe 10的版本在 windows 10 下就是百般的不稳定,而相同代码在windows 7 下则一切正常!!

本人已经被折磨得体无完肤了,心情相当之郁闷,官网,bing网,度娘无数都寻求不到解决方案。

本人在此就是想求证一下XE 是不是真的不行了??,为什么越来越不稳定!!,有没有什么解决方案?
----------------------------------------------
-
作者:
男 744840146 (744840146) ▲▲▲▲△ -
注册会员
2019/5/9 8:25:27
1楼: 估计是线程不安全,线程切换引起的

还是先按普通代码编写,测试通过后再移到线程里,再加上临界区什么的,保证是线程安全的才行
----------------------------------------------
-
作者:
男 wk_knife (wk_knife) ★☆☆☆☆ -
盒子活跃会员
2019/5/9 8:40:29
1楼: 楼主老命苦哩!软件在行,硬件不够在行。
别的不说,T460肯定可以MBR引导。我手头的机器应该和楼主配置差不多,独显+高分屏,拿到手我就把引导从UEFI改成MBR了。我磁盘管理里就两个分区C和D。要是UEFI肯定是还有两个隐藏分区的。

而且我觉得楼主的UEFI下跑Delphi有问题,估计和UEFI没关系。还是其他问题导致的。

刚才在我的机器上随便试了下类似楼主的线程代码,没有问题啊。我机器上有qt5.3、Lazarus、d7、XE10.3、vs2013。其他不大常用的都各自放在虚拟机里,比方VS2015就有一个单独的虚拟机,如果不需要用到三维的东西,基本都可以放到虚拟机里开发。
----------------------------------------------
-
作者:
男 sbamwdx (黑龙) ★☆☆☆☆ -
盒子活跃会员
2019/5/9 8:51:49
2楼: 原来t460装win7是没有问题的,但换装win10, 相同代码就硬是无法debug ,我总结了一下,好像跟堆栈深度有关,到一定时间,一定的模块,只要断点就必死。  我上面给的代码如果只是简单写个demo的话,也正常。

在 IntelliJ IDEA 有个堆栈深度的设置,不晓得xe里有没有?
----------------------------------------------
-
作者:
男 sbamwdx (黑龙) ★☆☆☆☆ -
盒子活跃会员
2019/5/9 8:55:59
3楼: 在java与安卓开发中,虽然有许多线程不安全的限定,但是ide不至于无法debug, 我的xe10 直接是将操作系统都搞了不会响应,只有任务管理器了干掉xe之后才能运行别的程序。让人相当崩溃。
----------------------------------------------
-
作者:
男 wang_80919 (Flying Wang) ▲▲▲▲▲ -
普通会员
2019/5/9 9:06:45
4楼: 楼主真牛,一个 引导方式,就能逼着你换 WIN10 啊。

顶 第二个一楼。
主要是我们的水平低, 也就是写 DEMO 级别的水平。
写不出几百个线程的 高级程序。

我也是 WIN10 + 10.3.1 ,我们的  DEMO 级别的程序,都没有问题。
----------------------------------------------
(C)(P)Flying Wang
作者:
男 keymark (keymark) ▲△△△△ -
注册会员
2019/5/9 9:17:30
5楼: 我遇到过   很多中文断不下
我装火绒杀毒了。也没见 断点失败。。
自带的也没你这种情况
----------------------------------------------
m3u8播放器:DPlayer/hlsjs-p2p-engine/ckplayer/flashls-dev/sewise-player/http不能播https某些情况下dns服务:coredns/http服务:miniweb/!http://www.lib4dev.com/topics/delphi>http://www.lib4dev.com/topics/pascal?p=34&s=!http://www.lib4dev.com/topics/delphi
作者:
男 wang_80919 (Flying Wang) ▲▲▲▲▲ -
普通会员
2019/5/9 9:20:05
6楼: 如果是 WIN32 中文目录,也不影响调试。
WIN64 下,不能用中文目录。
----------------------------------------------
(C)(P)Flying Wang
作者:
男 keymark (keymark) ▲△△△△ -
注册会员
2019/5/9 9:26:27
7楼: emb 用 vs  运行库了?
也许我记错了。
另外你的vs2015 sp 几啊? 是不是注册表被降级了?(瞎猜)
----------------------------------------------
m3u8播放器:DPlayer/hlsjs-p2p-engine/ckplayer/flashls-dev/sewise-player/http不能播https某些情况下dns服务:coredns/http服务:miniweb/!http://www.lib4dev.com/topics/delphi>http://www.lib4dev.com/topics/pascal?p=34&s=!http://www.lib4dev.com/topics/delphi
作者:
男 helyna (Person) ▲▲▲▲▲ -
注册会员
2019/5/9 10:59:25
8楼: 和WIN10没关系,我一直用WIN7也出现过这种情况,一命中断点就直接卡死,我测试VS没这种情况,又用OD试了试,也可以用,就DELPHI不行。
----------------------------------------------
-
作者:
男 sbamwdx (黑龙) ★☆☆☆☆ -
盒子活跃会员
2019/5/9 14:46:03
9楼: 现在就差着没试 MBR + windows 10 了 , ollydbg 在windows 10 下确实正常,不过用得少。现在很郁闷的是 delphi 7 反而没这些问题
----------------------------------------------
-
作者:
男 sbamwdx (黑龙) ★☆☆☆☆ -
盒子活跃会员
2019/5/9 14:53:39
10楼: to  (C)(P)Flying Wang 

项目目录是英文目录,之前在网上查过,有人说是因为中文目录导致的,后来改成英文目录了,略有改善用纯净系统安装后能正常一两天时间, 只要在IDE运行下报一个异常把IDE弹死后,再次生启系统,就无法恢复正常了,感觉系统记录了这次的异常记录,为此,本人把 \HCU\software\Embarcadero\ 进行了备份,并再把整个注册表进行了备份,再出问题时,恢复注册表,郁闷的是,一样的无法恢复正常!!
----------------------------------------------
-
作者:
男 keymark (keymark) ▲△△△△ -
注册会员
2019/5/9 15:51:52
11楼: 呵呵 
    调试新版有个进程不干掉还真不能 二次调试
----------------------------------------------
m3u8播放器:DPlayer/hlsjs-p2p-engine/ckplayer/flashls-dev/sewise-player/http不能播https某些情况下dns服务:coredns/http服务:miniweb/!http://www.lib4dev.com/topics/delphi>http://www.lib4dev.com/topics/pascal?p=34&s=!http://www.lib4dev.com/topics/delphi
作者:
男 lsuper (lsuper) ★☆☆☆☆ -
盒子活跃会员
2019/5/9 19:42:51
12楼: 中文路径、安全软件、...
----------------------------------------------
-
作者:
男 iamdream (银河恒久远,梦想无止境!) ★☆☆☆☆ -
大贡献会员
2019/5/9 21:34:23
13楼: 我也遇到过delphi里调试线程里的代码系统假死的情况,后来就尽量避免调试线程代码了,但有的时候调试线程代码又可以,估计还是和具体的线程代码有关,当然delphi的调试器可能也有局限。
----------------------------------------------
-广袤璀璨的银河,永无止境的梦想(梦无止境游银河) 博客挂了……
作者:
男 stacker (OOP才是王道) ★☆☆☆☆ -
普通会员
2019/5/10 20:30:46
14楼: 我也整天在用TThread.CreateAnonymousThread,没什么当过机,但我的系统是Windows 7而已。
----------------------------------------------
-
作者:
男 sbamwdx (黑龙) ★☆☆☆☆ -
盒子活跃会员
2019/5/11 0:58:17
15楼: 我用win7也没有问题,只是时代进步了,新出的电脑都不支持win7了
----------------------------------------------
-
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v2.1 版权所有 页面执行35.15625毫秒 RSS