Skip to content

Instantly share code, notes, and snippets.

@vedantk
Created November 8, 2019 00:19
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save vedantk/2d0cc1df9bea9f0fa74ee101d240b82c to your computer and use it in GitHub Desktop.
Save vedantk/2d0cc1df9bea9f0fa74ee101d240b82c to your computer and use it in GitHub Desktop.
Steps involved in clang installing the llvm SIGPIPE handler after signal(SIGPIPE, SIG_IGN) in lldb
=== Really doing llvm handler registration ===
0 lldb 0x0000000107b0fe98 llvm::sys::PrintStackTrace(llvm::raw_ostream&) + 40
1 lldb 0x0000000107b0f858 RegisterHandlers() + 328
2 lldb 0x0000000107b04d3e llvm::EnablePrettyStackTrace() + 46
3 lldb 0x0000000107b04103 llvm::InitLLVM::InitLLVM(int&, char const**&) + 147
4 lldb 0x0000000107aeaa9f main + 47
5 libdyld.dylib 0x00007fff722ba3d5 start + 1
6 libdyld.dylib 0x000000000000000e start + 18446603338600700986
=== (in lldb) Should have installed llvm handlers ^ ===
=== (in lldb) Blocking SIGPIPE ===
=== Really doing llvm handler registration ===
0 liblldb.10.0.0svn.dylib 0x00000001089db458 llvm::sys::PrintStackTrace(llvm::raw_ostream&) + 40
1 liblldb.10.0.0svn.dylib 0x00000001089daad8 RegisterHandlers() + 328
2 liblldb.10.0.0svn.dylib 0x00000001089db0f1 llvm::sys::RemoveFileOnSignal(llvm::StringRef, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*) + 289
3 liblldb.10.0.0svn.dylib 0x00000001089772cf llvm::LockFileManager::LockFileManager(llvm::StringRef) + 2607
4 liblldb.10.0.0svn.dylib 0x000000010a985716 clang::CompilerInstance::loadModule(clang::SourceLocation, llvm::ArrayRef<std::__1::pair<clang::IdentifierInfo*, clang::SourceLocation> >, clang::Module::NameVisibilityKind, bool) + 13974
5 liblldb.10.0.0svn.dylib 0x000000010866dfa9 (anonymous namespace)::ClangModulesDeclVendorImpl::AddModule(lldb_private::SourceModule const&, std::__1::vector<unsigned long, std::__1::allocator<unsigned long> >*, lldb_private::Stream&) + 2329
6 liblldb.10.0.0svn.dylib 0x00000001086653a3 lldb_private::ClangExpressionParser::LLDBPreprocessorCallbacks::moduleImport(clang::SourceLocation, llvm::ArrayRef<std::__1::pair<clang::IdentifierInfo*, clang::SourceLocation> >, clang::Module const*) + 323
7 liblldb.10.0.0svn.dylib 0x000000010ba8a2c7 clang::PPChainedCallbacks::moduleImport(clang::SourceLocation, llvm::ArrayRef<std::__1::pair<clang::IdentifierInfo*, clang::SourceLocation> >, clang::Module const*) + 39
8 liblldb.10.0.0svn.dylib 0x000000010bacb69c clang::Preprocessor::LexAfterModuleImport(clang::Token&) + 2316
9 liblldb.10.0.0svn.dylib 0x000000010baccc0b clang::Preprocessor::Lex(clang::Token&) + 59
10 liblldb.10.0.0svn.dylib 0x000000010ac26038 clang::Parser::ConsumeAnyToken(bool) + 136
11 liblldb.10.0.0svn.dylib 0x000000010ac271fd clang::Parser::SkipUntil(llvm::ArrayRef<clang::tok::TokenKind>, clang::Parser::SkipUntilFlags) + 557
12 liblldb.10.0.0svn.dylib 0x000000010abe1b6a clang::Parser::ParseObjCAtStatement(clang::SourceLocation, clang::Parser::ParsedStmtContext) + 426
13 liblldb.10.0.0svn.dylib 0x000000010ac0a115 clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*, clang::Parser::ParsedAttributesWithRange&) + 3957
14 liblldb.10.0.0svn.dylib 0x000000010ac08fdd clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*) + 189
15 liblldb.10.0.0svn.dylib 0x000000010ac11cd0 clang::Parser::ParseCompoundStatementBody(bool) + 1936
16 liblldb.10.0.0svn.dylib 0x000000010ac12a3f clang::Parser::ParseFunctionStatementBody(clang::Decl*, clang::Parser::ParseScope&) + 175
17 liblldb.10.0.0svn.dylib 0x000000010ac2eb8c clang::Parser::ParseFunctionDefinition(clang::ParsingDeclarator&, clang::Parser::ParsedTemplateInfo const&, clang::Parser::LateParsedAttrList*) + 2220
18 liblldb.10.0.0svn.dylib 0x000000010ab84297 clang::Parser::ParseDeclGroup(clang::ParsingDeclSpec&, clang::DeclaratorContext, clang::SourceLocation*, clang::Parser::ForRangeInit*) + 2103
19 liblldb.10.0.0svn.dylib 0x000000010ac2dee9 clang::Parser::ParseDeclOrFunctionDefInternal(clang::Parser::ParsedAttributesWithRange&, clang::ParsingDeclSpec&, clang::AccessSpecifier) + 745
20 liblldb.10.0.0svn.dylib 0x000000010ac2d982 clang::Parser::ParseDeclarationOrFunctionDefinition(clang::Parser::ParsedAttributesWithRange&, clang::ParsingDeclSpec*, clang::AccessSpecifier) + 642
21 liblldb.10.0.0svn.dylib 0x000000010ac2c15e clang::Parser::ParseExternalDeclaration(clang::Parser::ParsedAttributesWithRange&, clang::ParsingDeclSpec*) + 3086
22 liblldb.10.0.0svn.dylib 0x000000010ac29d1f clang::Parser::ParseTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&, bool) + 1391
23 liblldb.10.0.0svn.dylib 0x000000010ab6e10d clang::ParseAST(clang::Sema&, bool, bool) + 493
24 liblldb.10.0.0svn.dylib 0x0000000108661b6e lldb_private::ClangExpressionParser::ParseInternal(lldb_private::DiagnosticManager&, clang::CodeCompleteConsumer*, unsigned int, unsigned int) + 2382
25 liblldb.10.0.0svn.dylib 0x0000000108674ae9 lldb_private::ClangUserExpression::Parse(lldb_private::DiagnosticManager&, lldb_private::ExecutionContext&, lldb_private::ExecutionPolicy, bool, bool) + 841
26 liblldb.10.0.0svn.dylib 0x000000010846c2e8 lldb_private::UserExpression::Evaluate(lldb_private::ExecutionContext&, lldb_private::EvaluateExpressionOptions const&, llvm::StringRef, llvm::StringRef, lldb_private::SharingPtr<lldb_private::ValueObject>&, lldb_private::Status&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*, std::__1::shared_ptr<lldb_private::Module>*, lldb_private::ValueObject*) + 1912
27 liblldb.10.0.0svn.dylib 0x00000001085919c3 lldb_private::Target::EvaluateExpression(llvm::StringRef, lldb_private::ExecutionContextScope*, lldb_private::SharingPtr<lldb_private::ValueObject>&, lldb_private::EvaluateExpressionOptions const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*, lldb_private::ValueObject*) + 915
28 liblldb.10.0.0svn.dylib 0x0000000109e97582 lldb_private::CommandObjectExpression::EvaluateExpression(llvm::StringRef, lldb_private::Stream*, lldb_private::Stream*, lldb_private::CommandReturnObject*) + 562
29 liblldb.10.0.0svn.dylib 0x0000000109e98496 lldb_private::CommandObjectExpression::DoExecute(llvm::StringRef, lldb_private::CommandReturnObject&) + 1606
30 liblldb.10.0.0svn.dylib 0x00000001084a6c75 lldb_private::CommandObjectRaw::Execute(char const*, lldb_private::CommandReturnObject&) + 469
31 liblldb.10.0.0svn.dylib 0x000000010849e7fe lldb_private::CommandInterpreter::HandleCommand(char const*, lldb_private::LazyBool, lldb_private::CommandReturnObject&, lldb_private::ExecutionContext*, bool, bool) + 2894
32 liblldb.10.0.0svn.dylib 0x00000001084a1bd4 lldb_private::CommandInterpreter::IOHandlerInputComplete(lldb_private::IOHandler&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&) + 468
33 liblldb.10.0.0svn.dylib 0x00000001083e0641 lldb_private::IOHandlerEditline::Run() + 305
34 liblldb.10.0.0svn.dylib 0x00000001083c4af7 lldb_private::Debugger::RunIOHandler(std::__1::shared_ptr<lldb_private::IOHandler> const&) + 87
35 liblldb.10.0.0svn.dylib 0x000000010849fa14 lldb_private::CommandInterpreter::HandleCommandsFromFile(lldb_private::FileSpec&, lldb_private::ExecutionContext*, lldb_private::CommandInterpreterRunOptions&, lldb_private::CommandReturnObject&) + 1780
36 liblldb.10.0.0svn.dylib 0x0000000109e8da29 CommandObjectCommandsSource::DoExecute(lldb_private::Args&, lldb_private::CommandReturnObject&) + 393
37 liblldb.10.0.0svn.dylib 0x00000001084a6a42 lldb_private::CommandObjectParsed::Execute(char const*, lldb_private::CommandReturnObject&) + 418
38 liblldb.10.0.0svn.dylib 0x000000010849e7fe lldb_private::CommandInterpreter::HandleCommand(char const*, lldb_private::LazyBool, lldb_private::CommandReturnObject&, lldb_private::ExecutionContext*, bool, bool) + 2894
39 liblldb.10.0.0svn.dylib 0x00000001084a1bd4 lldb_private::CommandInterpreter::IOHandlerInputComplete(lldb_private::IOHandler&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&) + 468
40 liblldb.10.0.0svn.dylib 0x00000001083e0641 lldb_private::IOHandlerEditline::Run() + 305
41 liblldb.10.0.0svn.dylib 0x00000001083c47d9 lldb_private::Debugger::ExecuteIOHandlers() + 105
42 liblldb.10.0.0svn.dylib 0x00000001084a25d4 lldb_private::CommandInterpreter::RunCommandInterpreter(bool, bool, lldb_private::CommandInterpreterRunOptions&) + 180
43 liblldb.10.0.0svn.dylib 0x0000000108132c19 lldb::SBDebugger::RunCommandInterpreter(bool, bool, lldb::SBCommandInterpreterRunOptions&, int&, bool&, bool&) + 521
44 lldb 0x0000000107ae9d21 Driver::MainLoop() + 2449
45 lldb 0x0000000107aeb20f main + 1951
46 libdyld.dylib 0x00007fff722ba3d5 start + 1
47 libdyld.dylib 0x000000000000000e start + 18446603338600700986
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment