小编dev*_*ull的帖子

Xcode:如何退出lldb swift repl

我做了一个错字调试我的项目并出现在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)

debugging xcode lldb swift

24
推荐指数
1
解决办法
4011
查看次数

C++ 11标准是否提供类似boost :: any的东西?

例如boost::function,几乎完全移动到std::function,同样是boost::shared_ptr

但我找不到std::any?是重命名还是根本没有以新标准放置?

c++ boost boost-any c++11 stdany

19
推荐指数
3
解决办法
1万
查看次数

libgmalloc如何使用两级命名空间?

我想用调试目的编写自己的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.

malloc macos mach-o dyld

7
推荐指数
1
解决办法
1084
查看次数

MacOS:未捆绑/ unix可执行文件的版本信息

对我来说这是一个难题:

  • for Bundles/Frameworks版本位于Info.plist中
  • 对于旧应用程序,它放在资源分叉中

但是今天我发现了一个新的可执行文件(LaunchDaemon),它没有资源分支,没有Info.plist,并且根据Finder中的右窗格有1.0.0.1110版本.问题是版本来自哪里?

macos finder mach-o spotlight info.plist

6
推荐指数
1
解决办法
775
查看次数

如果没有编译失败,是否有可能推断出类型是否完整?

我想实现像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

c++ templates incomplete-type template-argument-deduction

5
推荐指数
2
解决办法
1368
查看次数

lldb:如何从特定的库/框架中调用函数

问题:在项目中,我们拥有特定于框架/动态库的本地化功能.也就是说,它们具有相同的名称,但从不同的包/文件夹中获取资源

我想调用特定库中的函数,类似于:

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上运行.

macos gdb lldb

4
推荐指数
1
解决办法
978
查看次数

如何使非提升进程可以访问命名管道?

问题:我创建了一个服务,该服务应该在提升的权限下运行。现在我有了一个可供用户访问的应用程序。应用程序希望通过命名管道与服务通信。命名管道由服务创建。

但是我无法打开管道,因为 ERROR_ACCESS_DENIED。问题:如何在服务中设置管道,以便应用程序能够写入/打开它?

我读过这篇文章,但它根本没有帮助。我很高兴看到提示或代码示例。

背景:我需要更改音频设备的设置,这可以通过通过 IMMDevice::OpenPropertyStore 调用获取的 IPropertyStore 接口来完成。然而,文档清楚地表明,如果我没有管理权限,我就无法执行此操作。显然,我不想每次用户旋转旋钮时都会使用 UAC 来惹恼用户。为此,我创建了上述服务。但再次没有运气。

winapi uac named-pipes wasapi

3
推荐指数
1
解决办法
893
查看次数

lldb/Xcode:如何打印线程索引、id 或名称?

问题:我想借助 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 //如果你担心内存泄漏

但它看起来是一个相当糟糕的解决方法,并且不太适合断点。

c++ xcode objective-c lldb

2
推荐指数
1
解决办法
3893
查看次数