标签:odi question 怎么 观察 ted hang ade null UNC
delphi 跟踪调试的时候查看DataSet数据记录 Ctrl+F7
调试 增强工具DataSet
http://edn.embarcadero.com/article/40268
http://docwiki.embarcadero.com/RADStudio/XE6/en/Debugger_Visualizers
http://docwiki.embarcadero.com/RADStudio/XE6/en/What%27s_New_in_Delphi_and_C++Builder_2010#Debugger_Changes
http://www.jed-software.com/xepp_screen.htm
http://www.soundvibe.net/blog/tcolor-visualizer/
Delphi 2010 Feature Highlight - Debugger Visualizers
Debugger Example
D:\Program Files (x86)\Embarcadero\RAD Studio\12.0\source\Visualizers\StringListVisualizer.pas
StringList查看器
XE5中delphi起作用,可以看到每行的元素值,c++builder怎么调不出来啊,原来是strings只有delphi的,在option里的Debugger Options\Visualizers看到没有c++描述支持
TStringList *ls; ls = new TStringList(); ls->Add("aaa"); ls->Add("bbb"); ls->Add("ccc"); delete ls; ls = NULL;
sl := TStringList.Create; sl.Add(‘aaa‘); sl.Add(‘bbb‘); sl.Add(‘ccc‘); FreeAndNil(sl);
Da
日期变量查看器
teTimeVisualizer.pas
官方提供的时间类型观察器,如果禁用的话,只可以看到float类型的数字,看不到日期格式,太不方便了,delphi和c++builder都可以。
TDateTime mydt;
mydt = TDateTime::CurrentDateTime();
http://stackoverflow.com/questions/2556146/improve-speed-of-own-debug-visualizer-for-delphi-2010
http://delphi.netcode.cz/text/tdataset-debug-visualizer.aspx
http://bbs.cnpack.org/redirect.php?tid=3323&goto=lastpost&styleid=1&sid=3NVH51
---------------------
DebugSvcs: IOTADebuggerServices;
DebugSvcs.CurrentProcess.CurrentThread.Evaluate()
IOTAThread.Evaluate
TDataSet
在Delphi里,用IOTAThread.Evaluate方法可以成功调用ClientDataSet和ADOQuery的SaveToFile方法保存文件,然后在DataSetVisualizer里分别用ClientDataSet和ADOQuery的LoadFromFile方法装载,然后关联DataSource、DBGrid,就可以显示了,速度极快!这样Delphi就解决了!
但是上述方法不能解决c++builder,在cb环境下IOTAThread.Evaluate调用SaveToFile方法不成功,获取属性可以成功,比如Expression="ADOQuery1->RecordCount"之类可以成功,是不是XE的bug还是方法不对,也许根本不支持方法的调用。再找找吧
CB里ClientDataSet,有XMLData属性,是数据集的xml数据,可以取到,然后赋值给调试器的ClientDataSet,这样也就解决了。
CB里的ADOQuery怎么办,他没有类似的XMLData熟悉啊
另外,针对cb,还有用IOTAProcess.ReadProcessMemory()方法尝试读取内存地址,再转换成DataSet不知行不行
cds1->SaveToFile("c:\\a",1) 这个可以成功,放在Evaluate/Modify窗口的Expression表达是里输入cds1->SaveToFile("c:\\a",1)可以成功,文件也存上了。
用此方法可以了。
但是调用cds1->ClassName()
还是回出现错误E2122 Function call terminated by unhandled exception 0xc0000005 at address 0x5006677d
大功告成
可以查看数据集了
---------------------
标签:odi question 怎么 观察 ted hang ade null UNC
原文地址:https://www.cnblogs.com/jijm123/p/10256653.html