我做了一个错字调试我的项目并出现在lldb swift REPL现在我不知道如何退出它同时不退出我调试的程序.所以我输入了expr -r - myVariable而不是expr -R - myVariable.以下就是我所看到的.(如果你想亲自尝试我使用Xcode 6.1,C++代码项目,myVariable必须存在)
(lldb) expr -r -- record.mFileRecord.mVolumeName
(std::string) $19 = ""
1> help expr
/var/folders/zv/r3033x4n0f72bprvyk8612480000gn/T/lldb/30856
/repl433.swift:2:5: error: consecutive statements on a line must be
separated by ';'
1> quit
/var/folders/zv/r3033x4n0f72bprvyk8612480000gn/T/lldb/30856
/repl434.swift:2:1: error: use of unresolved identifier 'quit'
quit
1> exit
/var/folders/zv/r3033x4n0f72bprvyk8612480000gn/T/lldb/30856/repl435.swift:2:1: error: use of unresolved identifier 'exit'
exit
1> exit()
/var/folders/zv/r3033x4n0f72bprvyk8612480000gn/T/lldb/30856/repl436.swift:2:1: error: use of unresolved identifier 'exit'
exit()
^
1> quit()
/var/folders/zv/r3033x4n0f72bprvyk8612480000gn/T/lldb/30856/repl437.swift:2:1: error: use of unresolved identifier 'quit'
quit()
1> .quit
/var/folders/zv/r3033x4n0f72bprvyk8612480000gn/T/lldb/30856 …Run Code Online (Sandbox Code Playgroud) 例如boost::function,几乎完全移动到std::function,同样是boost::shared_ptr
但我找不到std::any?是重命名还是根本没有以新标准放置?
我想用调试目的编写自己的malloc/free函数,文档说我必须使用DYLD_FORCE_FLAT_NAMESPACE和DYLD_INSERT_LIBRARIES.但与此同时,libgmalloc文章明确指出:
libgmalloc is available in /usr/lib/libgmalloc.dylib. To use it, set this environment variable:
set DYLD_INSERT_LIBRARIES to /usr/lib/libgmalloc.dylib
Note: it is no longer necessary to set DYLD_FORCE_FLAT_NAMESPACE.
Run Code Online (Sandbox Code Playgroud)
问题是:如何在DYLD_FORCE_FLAT_NAMESPACE中删除必要性?如果我不强制命名空间平整度,则不使用我自己的库中的malloc.
对我来说这是一个难题:
但是今天我发现了一个新的可执行文件(LaunchDaemon),它没有资源分支,没有Info.plist,并且根据Finder中的右窗格有1.0.0.1110版本.问题是版本来自哪里?
我想实现像sizeof(complete_type)这样的行为将返回实际sizeof,而sizeof(incomplete_type) - 将只是0
我需要这个为IPC(进程间)通信提供扩展的运行时类型信息,每种类型的描述结构:
struct my_type_info
{
bool is_pointer;
size_t size; //for double* will be 4 on i386. that is sizeof(double*)
size_t base_size; //for double* will be 8. that is sizeof(double)
};
Run Code Online (Sandbox Code Playgroud)
进入我的系统时出现类似MyOnlyDeclaredClass类的问题; 我有编译错误,显然是因为我无法控制它的大小.
boost type_traits http://www.boost.org/doc/libs/1_48_0/libs/type_traits/doc/html/index.html建议了许多编译时类,但没有'is_incomplete'
有趣的编译器是VS2008,VS2010,clang 3,gcc-4.6,gcc-4.7
问题:在项目中,我们拥有特定于框架/动态库的本地化功能.也就是说,它们具有相同的名称,但从不同的包/文件夹中获取资源
我想调用特定库中的函数,类似于:
lldb> p my_audio_engine.framework::GetL10nString( stringId );
lldb> expr --shlib my_audio_engine.framework -- GetL10nString();
lldb> p my_audio_engine`L10N_Utils::GetString(40000)
Run Code Online (Sandbox Code Playgroud)
但所有这些变种都不起作用.
在标签中添加gdb希望相同的语义(如果存在)也可以在lldb上运行.
问题:我创建了一个服务,该服务应该在提升的权限下运行。现在我有了一个可供用户访问的应用程序。应用程序希望通过命名管道与服务通信。命名管道由服务创建。
但是我无法打开管道,因为 ERROR_ACCESS_DENIED。问题:如何在服务中设置管道,以便应用程序能够写入/打开它?
我读过这篇文章,但它根本没有帮助。我很高兴看到提示或代码示例。
背景:我需要更改音频设备的设置,这可以通过通过 IMMDevice::OpenPropertyStore 调用获取的 IPropertyStore 接口来完成。然而,文档清楚地表明,如果我没有管理权限,我就无法执行此操作。显然,我不想每次用户旋转旋钮时都会使用 UAC 来惹恼用户。为此,我创建了上述服务。但再次没有运气。
问题:我想借助 Xcode 中的操作断点来跟踪程序,所以我感兴趣的是我的函数是否始终在一个线程中执行。
有一个手册:http://lldb.llvm.org/formats.html,其中包含所有必需的变量,但由于某种原因它们不适用于 p/expr 命令。
所以我想要像 p ${thread.id} 或 expr -- thread.id 这样的东西,但我对它们没有运气。
我知道不好的方法是:
p/x (长)pthread_self()
并获取名称:
p new char[256] //它将返回合适的指针,例如 $3 = 0x000000007480840
p (int)pthread_getname_np( (pthread_t)yourId, $3, (size_t)256 ) //将线程名称写入缓冲区
p $3 //你会看到它的名字
p delete $3 //如果你担心内存泄漏
但它看起来是一个相当糟糕的解决方法,并且不太适合断点。