草庐IT

lldb_private

全部标签

c# - "Private Data"在 VMMAP 中定义了什么?

我正在使用VMMap来分析混合模式(托管和非托管)应用程序中的虚拟/进程地址空间利用率。我了解WindowsVMM和虚拟内存API的工作原理,我也了解堆内存API的工作原理。我查看了我正在使用的CRT实现(不是很详细)并且(我认为我-这可能是我的失败)了解它如何使用上述Win32API。我想了解这个“私有(private)数据”统计数据向我展示了什么。我的应用程序没有直接调用任何Win32内存API函数,它只使用nativeC++中的“malloc/new”和C#中的“new”(在深处将使用Win32内存管理API)。VMMap给出的“私有(private)数据”的定义是:Privat

c# - 如何计算私有(private)工作集(内存)?

如何使用C#计算私有(private)工作内存集?我有兴趣生成与taskmgr.exe大致相同的数字。我正在使用Process命名空间并使用WorkingSet64和PrivateMemorySize64等方法/数据,但这些数字相差100MB或更多有时。 最佳答案 这是一个高度可变的数字,您无法计算它。Windows内存管理器不断将​​页面换入和换出RAM。TaskMgr.exe从性能计数器中获取它。你可以像这样得到相同的数字:usingSystem;usingSystem.Diagnostics;classProgram{stat

c# - 将私有(private)成员封装为属性与定义没有私有(private)成员的属性有什么区别?

像这样封装私有(private)成员有什么区别(性能、内存...等)privateintage;publicintAge{get{returnage;}set{age=value;}}并定义这样的属性publicintAge{get;set;} 最佳答案 在第二种情况下,C#编译器将为您生成一个字段并生成一个getter和setter来访问它。换句话说,您发布的两个代码示例之间没有功能差异。唯一的区别是私有(private)字段的名称,它将由编译器生成。 关于c#-将私有(private

android - 公共(public)或私有(private),Android变量真的很重要吗

在单个Activity中,当定义仅在该Activity中使用的组件时,以下定义之间的真正区别是什么:ButtonbtnPower=null;//orprivateButtonbtnPower=null;//orpublicButtonbtnPower=null;publicvoidsomethingUsingTheButton(){btnPower=(Button)findViewById(R.id.btnpower_id);}是否应该考虑一些“幕后”约定(垃圾清理、内存等),如果实体本身只在类内部使用,则建议始终使用私有(private)而不是公共(public)写的?

c++ - protected 继承是否允许派生类访问其基类的私有(private)成员?

我真的对私有(private)继承和protected继承感到困惑。1)在protected继承中,公共(public)成员和protected成员成为派生类中的protected成员。在私有(private)继承中,一切都是私有(private)的。但是,派生类永远不能访问基类的私有(private)成员,对吗?在这两种情况下,派生类都可以访问公共(public)成员和protected成员。那正确吗?2)我注意到基类的私有(private)成员永远不会被派生类触及。那么为什么私有(private)成员会被继承呢? 最佳答案 您在

c++ - 子类真的继承私有(private)成员变量吗?

据我所知,基本上,当您创建具有公共(public)、protected和私有(private)部分以及每个公共(public)和protected部分中的变量/函数的基类时,将继承到子类的适当部分(定义按类子类:私有(private)基类,它将所有基类的公共(public)和protected成员置于公共(public)状态,将“私有(private)”一词更改为公共(public)将它们全部置于公共(public)状态并将其更改为protected将它们全部置于protected状态。所以,当你创建一个子类时,你永远不会从前一个类(在这种情况下是基类)的私有(private)部分收到

c++ - 在 lldb 中使用 C++ std::cout

我正在尝试调用std::cout在Xcode5C++项目中的lldb中。我的项目有一个#include行(并且我验证了编译后的std::cout命令可以正常工作),但它确实not有usingnamespacestd;行。当我在lldb的断点处停止时,我无法调用std::cout:(lldb)exprstd::cout对于那些感兴趣的人,我正在尝试使用std::cout打印OpenCVMat目的。但那个细节可能并不重要。我的lldb版本是lldb-300.2.53.根据要求,这是(简单的)代码:#includeintmain(intargc,constchar*argv[]){std::

c++ - 允许类的用户 move 私有(private)成员

假设我有这门课:classMessage{public:usingPayload=std::map;Message(intid,Payloadpayload):id_(id),payload_(std::move(payload)){}intid()const{returnid_;}constPayload&payload()const{returnpayload_;}private:intid_;Payloadpayload_;};其中Payload可能很大且复制成本很高。我想让这个Message类的用户有机会move有效负载,而不必复制它。这样做的最佳方法是什么?我可以想到以下几种

在嵌套匿名结构上忽略 C++ 私有(private)修饰符

以下示例代码在VisualC++中编译得很好:classTest{private:struct{struct{intprivateData;};};};intmain(int,char**){Testtest;test.privateData=0;return0;}但是为什么呢?我预计会出现编译器错误,因为函数main应该无法访问privateData成员,因为它应该是private就像它的容器的容器一样。我知道无名结构不是官方C++的一部分,但这种设计是愚蠢的。顺便说一句,我还尝试将private更改为protected并将struct更改为union:它看起来编译器拒绝尊重嵌套在另

c++ - C++ 标准是否保证未使用的私有(private)字段会影响 sizeof?

考虑以下结构:classFoo{inta;};在g++中测试,我得到了sizeof(Foo)==4但标准是否保证了这一点?是否允许编译器注意到a是一个未使用的私有(private)字段并将其从类的内存表示中删除(导致更小的sizeof)?我不希望任何编译器真正进行这种优化,但这个问题出现在语言律师讨论中,所以现在我很好奇。 最佳答案 C++标准没有定义很多关于内存布局的内容。这种情况的基本规则是9Classes部分下的第4项:4Completeobjectsandmembersubobjectsofclasstypeshallhav