假设在类A的MA()方法中,在创建对象后调用类B的方法MB()。有没有办法在MB()中知道类的名称以及它在C++中被调用的方法?有没有办法知道在C++中调用对象的方法的类的名称?
2
A
回答
3
你在说什么是Stack Trace。
堆栈跟踪的定义:
堆栈跟踪是一种有用的调试工具 ,你会通常需要 优势,当一个例外 被扔的。它提供关于 当前线程的执行历史的信息 ,在 之间显示 这些类中的类和方法的名称 ,这些类在发生异常时被调用。
这个SO问题"How can one grab a stack trace in C?"有你需要的答案。
1
一种更简单和更通用的方法将是如下:
a)使输出追查基于运行时间条件(例如,特定的环境变量)/调试开关
b)中登录的条目,并每个函数的退出以及线程ID(以处理多线程应用程序)。为此,请使用__FILE__ and __LINE__
预处理器指令。
c)使用一个良好的LogViewer应用(例如DebugView中在Windows)
相关问题
- 1. 有没有办法知道一个对象的C#方法是否被调用?
- 2. 有没有办法知道在Perl中的未知类的实例的方法
- 3. 有没有办法调用被覆盖的对象的基类方法? (C++)
- 4. Objective C:有没有办法在没有编译器投诉的情况下调用类对象的类方法?
- 5. 在Groovy中,有没有办法知道持有闭包的变量的名称?
- 6. 有没有办法知道调用方法?
- 7. 有没有办法在对象名称中使用变量?
- 8. 有没有办法知道返回的对象是什么?
- 9. 在Perl中:有没有办法知道列表中变量的名称?
- 10. 有没有什么办法从android应用程序中知道json对象中的键的名称?
- 11. 有没有办法在不知道对象的结构的情况下从JSON组成匿名类型对象?
- 12. 有没有办法在Groovy中拥有可调用的对象?
- 13. 调用不同类的方法,但不知道对象的名称
- 14. 对象*名称*没有方法*方法名称*
- 15. 有没有办法在不通过相同名称的子类方法的情况下在子类对象上调用超类的方法?
- 16. 有没有办法从被调用方法中的调用方法获取参数的名称?
- 17. 有没有办法从iOS中的CLLocation获取街道名称?
- 18. 有没有办法使用具有类名称的字符串来调用类的静态方法?
- 19. 有没有办法通过实例方法知道类名?红宝石
- 20. 有没有办法只使用类的对象名称作为“默认”成员?
- 21. 有没有办法让对象知道它被添加到DOM?
- 22. 有没有办法在eval中调用类方法?
- 23. 有没有办法找出导致在ruby中调用另一个方法的方法的名称?
- 24. 有没有办法用C++类包装Objective-C对象
- 25. 有什么办法可以知道调用者类名吗?
- 26. 有没有办法在被调用者中获得调用函数的名称?
- 27. 有没有办法在Python中的类方法中修改类?
- 28. 有没有办法在java中使用类似于c#的引用(@“”)的方法
- 29. Javascript对象用方法返回“没有方法”我的方法名称“”错误
- 30. C++类的方法调用.cpp没有::
1此分析日志,但值得注意的是,C++不用于提供任何特征或担保有关堆栈检查机制便携式可用性 – 2010-08-23 01:25:49
@Tony:谢谢你的澄清。 – 2010-08-23 01:41:29
而且它可能仅仅在具有符号信息的构建中简单地工作。如果它是一个没有符号信息的发布版本,它会花费更多的精力 – Chubsdad 2010-08-23 02:27:50