15c28dd1daf8de701ce1eeb8f9b8d3e3b5e39ad50Greg Clayton//===-- FormatManager.cpp -------------------------------------------*- C++ -*-===// 25c28dd1daf8de701ce1eeb8f9b8d3e3b5e39ad50Greg Clayton// 35c28dd1daf8de701ce1eeb8f9b8d3e3b5e39ad50Greg Clayton// The LLVM Compiler Infrastructure 45c28dd1daf8de701ce1eeb8f9b8d3e3b5e39ad50Greg Clayton// 55c28dd1daf8de701ce1eeb8f9b8d3e3b5e39ad50Greg Clayton// This file is distributed under the University of Illinois Open Source 65c28dd1daf8de701ce1eeb8f9b8d3e3b5e39ad50Greg Clayton// License. See LICENSE.TXT for details. 75c28dd1daf8de701ce1eeb8f9b8d3e3b5e39ad50Greg Clayton// 85c28dd1daf8de701ce1eeb8f9b8d3e3b5e39ad50Greg Clayton//===----------------------------------------------------------------------===// 95c28dd1daf8de701ce1eeb8f9b8d3e3b5e39ad50Greg Clayton 10d891f9b872103235cfd2ed452c6f14a4394d9b3aDaniel Malea#include "lldb/lldb-python.h" 11d891f9b872103235cfd2ed452c6f14a4394d9b3aDaniel Malea 12f509c5ec066599a3399fced39ea36996184939e8Enrico Granata#include "lldb/DataFormatters/FormatManager.h" 135c28dd1daf8de701ce1eeb8f9b8d3e3b5e39ad50Greg Clayton 145c28dd1daf8de701ce1eeb8f9b8d3e3b5e39ad50Greg Clayton// C Includes 155c28dd1daf8de701ce1eeb8f9b8d3e3b5e39ad50Greg Clayton// C++ Includes 165c28dd1daf8de701ce1eeb8f9b8d3e3b5e39ad50Greg Clayton// Other libraries and framework includes 175c28dd1daf8de701ce1eeb8f9b8d3e3b5e39ad50Greg Clayton// Project includes 185c28dd1daf8de701ce1eeb8f9b8d3e3b5e39ad50Greg Clayton 19f7a9b14c2c02d2fa9fad586c19f29d77533fcc09Enrico Granata#include "lldb/Core/Debugger.h" 20f509c5ec066599a3399fced39ea36996184939e8Enrico Granata#include "lldb/DataFormatters/CXXFormatterFunctions.h" 21f509c5ec066599a3399fced39ea36996184939e8Enrico Granata#include "lldb/Interpreter/ScriptInterpreterPython.h" 22f509c5ec066599a3399fced39ea36996184939e8Enrico Granata#include "lldb/Target/ExecutionContext.h" 23f509c5ec066599a3399fced39ea36996184939e8Enrico Granata#include "lldb/Target/Platform.h" 24f7a9b14c2c02d2fa9fad586c19f29d77533fcc09Enrico Granata 255c28dd1daf8de701ce1eeb8f9b8d3e3b5e39ad50Greg Claytonusing namespace lldb; 265c28dd1daf8de701ce1eeb8f9b8d3e3b5e39ad50Greg Claytonusing namespace lldb_private; 275c28dd1daf8de701ce1eeb8f9b8d3e3b5e39ad50Greg Clayton 283182effd150f2e0381d7c6867236737ac69ad846Greg Clayton 293182effd150f2e0381d7c6867236737ac69ad846Greg Claytonstruct FormatInfo 303182effd150f2e0381d7c6867236737ac69ad846Greg Clayton{ 313182effd150f2e0381d7c6867236737ac69ad846Greg Clayton Format format; 323182effd150f2e0381d7c6867236737ac69ad846Greg Clayton const char format_char; // One or more format characters that can be used for this format. 333182effd150f2e0381d7c6867236737ac69ad846Greg Clayton const char *format_name; // Long format name that can be used to specify the current format 343182effd150f2e0381d7c6867236737ac69ad846Greg Clayton}; 353182effd150f2e0381d7c6867236737ac69ad846Greg Clayton 363182effd150f2e0381d7c6867236737ac69ad846Greg Claytonstatic FormatInfo 373182effd150f2e0381d7c6867236737ac69ad846Greg Claytong_format_infos[] = 383182effd150f2e0381d7c6867236737ac69ad846Greg Clayton{ 393182effd150f2e0381d7c6867236737ac69ad846Greg Clayton { eFormatDefault , '\0' , "default" }, 403182effd150f2e0381d7c6867236737ac69ad846Greg Clayton { eFormatBoolean , 'B' , "boolean" }, 413182effd150f2e0381d7c6867236737ac69ad846Greg Clayton { eFormatBinary , 'b' , "binary" }, 423182effd150f2e0381d7c6867236737ac69ad846Greg Clayton { eFormatBytes , 'y' , "bytes" }, 433182effd150f2e0381d7c6867236737ac69ad846Greg Clayton { eFormatBytesWithASCII , 'Y' , "bytes with ASCII" }, 443182effd150f2e0381d7c6867236737ac69ad846Greg Clayton { eFormatChar , 'c' , "character" }, 453182effd150f2e0381d7c6867236737ac69ad846Greg Clayton { eFormatCharPrintable , 'C' , "printable character" }, 463182effd150f2e0381d7c6867236737ac69ad846Greg Clayton { eFormatComplexFloat , 'F' , "complex float" }, 473182effd150f2e0381d7c6867236737ac69ad846Greg Clayton { eFormatCString , 's' , "c-string" }, 4824a6bd9835ed1655984397b0cdf35127e47681e9Greg Clayton { eFormatDecimal , 'd' , "decimal" }, 493182effd150f2e0381d7c6867236737ac69ad846Greg Clayton { eFormatEnum , 'E' , "enumeration" }, 503182effd150f2e0381d7c6867236737ac69ad846Greg Clayton { eFormatHex , 'x' , "hex" }, 51535543d6104ee45b4503db6bb6c175e66d0e093bEnrico Granata { eFormatHexUppercase , 'X' , "uppercase hex" }, 523182effd150f2e0381d7c6867236737ac69ad846Greg Clayton { eFormatFloat , 'f' , "float" }, 533182effd150f2e0381d7c6867236737ac69ad846Greg Clayton { eFormatOctal , 'o' , "octal" }, 543182effd150f2e0381d7c6867236737ac69ad846Greg Clayton { eFormatOSType , 'O' , "OSType" }, 553182effd150f2e0381d7c6867236737ac69ad846Greg Clayton { eFormatUnicode16 , 'U' , "unicode16" }, 563182effd150f2e0381d7c6867236737ac69ad846Greg Clayton { eFormatUnicode32 , '\0' , "unicode32" }, 573182effd150f2e0381d7c6867236737ac69ad846Greg Clayton { eFormatUnsigned , 'u' , "unsigned decimal" }, 583182effd150f2e0381d7c6867236737ac69ad846Greg Clayton { eFormatPointer , 'p' , "pointer" }, 593182effd150f2e0381d7c6867236737ac69ad846Greg Clayton { eFormatVectorOfChar , '\0' , "char[]" }, 603182effd150f2e0381d7c6867236737ac69ad846Greg Clayton { eFormatVectorOfSInt8 , '\0' , "int8_t[]" }, 613182effd150f2e0381d7c6867236737ac69ad846Greg Clayton { eFormatVectorOfUInt8 , '\0' , "uint8_t[]" }, 623182effd150f2e0381d7c6867236737ac69ad846Greg Clayton { eFormatVectorOfSInt16 , '\0' , "int16_t[]" }, 633182effd150f2e0381d7c6867236737ac69ad846Greg Clayton { eFormatVectorOfUInt16 , '\0' , "uint16_t[]" }, 6454890a32efd3a6ffd2bfe38f7398c0a63b5913d5Enrico Granata { eFormatVectorOfSInt32 , '\0' , "int32_t[]" }, 6554890a32efd3a6ffd2bfe38f7398c0a63b5913d5Enrico Granata { eFormatVectorOfUInt32 , '\0' , "uint32_t[]" }, 6654890a32efd3a6ffd2bfe38f7398c0a63b5913d5Enrico Granata { eFormatVectorOfSInt64 , '\0' , "int64_t[]" }, 6754890a32efd3a6ffd2bfe38f7398c0a63b5913d5Enrico Granata { eFormatVectorOfUInt64 , '\0' , "uint64_t[]" }, 683182effd150f2e0381d7c6867236737ac69ad846Greg Clayton { eFormatVectorOfFloat32, '\0' , "float32[]" }, 693182effd150f2e0381d7c6867236737ac69ad846Greg Clayton { eFormatVectorOfFloat64, '\0' , "float64[]" }, 703182effd150f2e0381d7c6867236737ac69ad846Greg Clayton { eFormatVectorOfUInt128, '\0' , "uint128_t[]" }, 713182effd150f2e0381d7c6867236737ac69ad846Greg Clayton { eFormatComplexInteger , 'I' , "complex integer" }, 7224a6bd9835ed1655984397b0cdf35127e47681e9Greg Clayton { eFormatCharArray , 'a' , "character array" }, 7324a6bd9835ed1655984397b0cdf35127e47681e9Greg Clayton { eFormatAddressInfo , 'A' , "address" }, 74535543d6104ee45b4503db6bb6c175e66d0e093bEnrico Granata { eFormatHexFloat , '\0' , "hex float" }, 7596abc62dcb25159dbb532e477ba2cf6d85b81700Sean Callanan { eFormatInstruction , 'i' , "instruction" }, 7696abc62dcb25159dbb532e477ba2cf6d85b81700Sean Callanan { eFormatVoid , 'v' , "void" } 773182effd150f2e0381d7c6867236737ac69ad846Greg Clayton}; 783182effd150f2e0381d7c6867236737ac69ad846Greg Clayton 793182effd150f2e0381d7c6867236737ac69ad846Greg Claytonstatic uint32_t 803182effd150f2e0381d7c6867236737ac69ad846Greg Claytong_num_format_infos = sizeof(g_format_infos)/sizeof(FormatInfo); 813182effd150f2e0381d7c6867236737ac69ad846Greg Clayton 823182effd150f2e0381d7c6867236737ac69ad846Greg Claytonstatic bool 833182effd150f2e0381d7c6867236737ac69ad846Greg ClaytonGetFormatFromFormatChar (char format_char, Format &format) 843182effd150f2e0381d7c6867236737ac69ad846Greg Clayton{ 853182effd150f2e0381d7c6867236737ac69ad846Greg Clayton for (uint32_t i=0; i<g_num_format_infos; ++i) 863182effd150f2e0381d7c6867236737ac69ad846Greg Clayton { 873182effd150f2e0381d7c6867236737ac69ad846Greg Clayton if (g_format_infos[i].format_char == format_char) 883182effd150f2e0381d7c6867236737ac69ad846Greg Clayton { 893182effd150f2e0381d7c6867236737ac69ad846Greg Clayton format = g_format_infos[i].format; 903182effd150f2e0381d7c6867236737ac69ad846Greg Clayton return true; 913182effd150f2e0381d7c6867236737ac69ad846Greg Clayton } 923182effd150f2e0381d7c6867236737ac69ad846Greg Clayton } 933182effd150f2e0381d7c6867236737ac69ad846Greg Clayton format = eFormatInvalid; 943182effd150f2e0381d7c6867236737ac69ad846Greg Clayton return false; 953182effd150f2e0381d7c6867236737ac69ad846Greg Clayton} 963182effd150f2e0381d7c6867236737ac69ad846Greg Clayton 973182effd150f2e0381d7c6867236737ac69ad846Greg Claytonstatic bool 983182effd150f2e0381d7c6867236737ac69ad846Greg ClaytonGetFormatFromFormatName (const char *format_name, bool partial_match_ok, Format &format) 993182effd150f2e0381d7c6867236737ac69ad846Greg Clayton{ 1003182effd150f2e0381d7c6867236737ac69ad846Greg Clayton uint32_t i; 1013182effd150f2e0381d7c6867236737ac69ad846Greg Clayton for (i=0; i<g_num_format_infos; ++i) 1023182effd150f2e0381d7c6867236737ac69ad846Greg Clayton { 1033182effd150f2e0381d7c6867236737ac69ad846Greg Clayton if (strcasecmp (g_format_infos[i].format_name, format_name) == 0) 1043182effd150f2e0381d7c6867236737ac69ad846Greg Clayton { 1053182effd150f2e0381d7c6867236737ac69ad846Greg Clayton format = g_format_infos[i].format; 1063182effd150f2e0381d7c6867236737ac69ad846Greg Clayton return true; 1073182effd150f2e0381d7c6867236737ac69ad846Greg Clayton } 1083182effd150f2e0381d7c6867236737ac69ad846Greg Clayton } 1093182effd150f2e0381d7c6867236737ac69ad846Greg Clayton 1103182effd150f2e0381d7c6867236737ac69ad846Greg Clayton if (partial_match_ok) 1113182effd150f2e0381d7c6867236737ac69ad846Greg Clayton { 1123182effd150f2e0381d7c6867236737ac69ad846Greg Clayton for (i=0; i<g_num_format_infos; ++i) 1133182effd150f2e0381d7c6867236737ac69ad846Greg Clayton { 1143182effd150f2e0381d7c6867236737ac69ad846Greg Clayton if (strcasestr (g_format_infos[i].format_name, format_name) == g_format_infos[i].format_name) 1153182effd150f2e0381d7c6867236737ac69ad846Greg Clayton { 1163182effd150f2e0381d7c6867236737ac69ad846Greg Clayton format = g_format_infos[i].format; 1173182effd150f2e0381d7c6867236737ac69ad846Greg Clayton return true; 1183182effd150f2e0381d7c6867236737ac69ad846Greg Clayton } 1193182effd150f2e0381d7c6867236737ac69ad846Greg Clayton } 1203182effd150f2e0381d7c6867236737ac69ad846Greg Clayton } 1213182effd150f2e0381d7c6867236737ac69ad846Greg Clayton format = eFormatInvalid; 1223182effd150f2e0381d7c6867236737ac69ad846Greg Clayton return false; 1233182effd150f2e0381d7c6867236737ac69ad846Greg Clayton} 1243182effd150f2e0381d7c6867236737ac69ad846Greg Clayton 1253182effd150f2e0381d7c6867236737ac69ad846Greg Claytonbool 1263182effd150f2e0381d7c6867236737ac69ad846Greg ClaytonFormatManager::GetFormatFromCString (const char *format_cstr, 1273182effd150f2e0381d7c6867236737ac69ad846Greg Clayton bool partial_match_ok, 1283182effd150f2e0381d7c6867236737ac69ad846Greg Clayton lldb::Format &format) 1293182effd150f2e0381d7c6867236737ac69ad846Greg Clayton{ 1303182effd150f2e0381d7c6867236737ac69ad846Greg Clayton bool success = false; 1313182effd150f2e0381d7c6867236737ac69ad846Greg Clayton if (format_cstr && format_cstr[0]) 1323182effd150f2e0381d7c6867236737ac69ad846Greg Clayton { 1333182effd150f2e0381d7c6867236737ac69ad846Greg Clayton if (format_cstr[1] == '\0') 1343182effd150f2e0381d7c6867236737ac69ad846Greg Clayton { 1353182effd150f2e0381d7c6867236737ac69ad846Greg Clayton success = GetFormatFromFormatChar (format_cstr[0], format); 1363182effd150f2e0381d7c6867236737ac69ad846Greg Clayton if (success) 1373182effd150f2e0381d7c6867236737ac69ad846Greg Clayton return true; 1383182effd150f2e0381d7c6867236737ac69ad846Greg Clayton } 1393182effd150f2e0381d7c6867236737ac69ad846Greg Clayton 1403182effd150f2e0381d7c6867236737ac69ad846Greg Clayton success = GetFormatFromFormatName (format_cstr, partial_match_ok, format); 1413182effd150f2e0381d7c6867236737ac69ad846Greg Clayton } 1423182effd150f2e0381d7c6867236737ac69ad846Greg Clayton if (!success) 1433182effd150f2e0381d7c6867236737ac69ad846Greg Clayton format = eFormatInvalid; 1443182effd150f2e0381d7c6867236737ac69ad846Greg Clayton return success; 1453182effd150f2e0381d7c6867236737ac69ad846Greg Clayton} 1463182effd150f2e0381d7c6867236737ac69ad846Greg Clayton 1473182effd150f2e0381d7c6867236737ac69ad846Greg Claytonchar 1483182effd150f2e0381d7c6867236737ac69ad846Greg ClaytonFormatManager::GetFormatAsFormatChar (lldb::Format format) 1493182effd150f2e0381d7c6867236737ac69ad846Greg Clayton{ 1503182effd150f2e0381d7c6867236737ac69ad846Greg Clayton for (uint32_t i=0; i<g_num_format_infos; ++i) 1513182effd150f2e0381d7c6867236737ac69ad846Greg Clayton { 1523182effd150f2e0381d7c6867236737ac69ad846Greg Clayton if (g_format_infos[i].format == format) 1533182effd150f2e0381d7c6867236737ac69ad846Greg Clayton return g_format_infos[i].format_char; 1543182effd150f2e0381d7c6867236737ac69ad846Greg Clayton } 1553182effd150f2e0381d7c6867236737ac69ad846Greg Clayton return '\0'; 1563182effd150f2e0381d7c6867236737ac69ad846Greg Clayton} 1573182effd150f2e0381d7c6867236737ac69ad846Greg Clayton 1583182effd150f2e0381d7c6867236737ac69ad846Greg Claytonconst char * 1593182effd150f2e0381d7c6867236737ac69ad846Greg ClaytonFormatManager::GetFormatAsCString (Format format) 1603182effd150f2e0381d7c6867236737ac69ad846Greg Clayton{ 1613182effd150f2e0381d7c6867236737ac69ad846Greg Clayton if (format >= eFormatDefault && format < kNumFormats) 1623182effd150f2e0381d7c6867236737ac69ad846Greg Clayton return g_format_infos[format].format_name; 1633182effd150f2e0381d7c6867236737ac69ad846Greg Clayton return NULL; 1643182effd150f2e0381d7c6867236737ac69ad846Greg Clayton} 165886bc3e5cb48e9660692609a7be69ec15b898bd7Enrico Granata 16607baf83fe7ae25ac87d38cd4fc19647b020adfadEnrico Granatalldb::TypeSummaryImplSP 16707baf83fe7ae25ac87d38cd4fc19647b020adfadEnrico GranataFormatManager::GetSummaryForType (lldb::TypeNameSpecifierImplSP type_sp) 16807baf83fe7ae25ac87d38cd4fc19647b020adfadEnrico Granata{ 16907baf83fe7ae25ac87d38cd4fc19647b020adfadEnrico Granata if (!type_sp) 17007baf83fe7ae25ac87d38cd4fc19647b020adfadEnrico Granata return lldb::TypeSummaryImplSP(); 17107baf83fe7ae25ac87d38cd4fc19647b020adfadEnrico Granata lldb::TypeSummaryImplSP summary_chosen_sp; 17207baf83fe7ae25ac87d38cd4fc19647b020adfadEnrico Granata uint32_t num_categories = m_categories_map.GetCount(); 17307baf83fe7ae25ac87d38cd4fc19647b020adfadEnrico Granata lldb::TypeCategoryImplSP category_sp; 17407baf83fe7ae25ac87d38cd4fc19647b020adfadEnrico Granata uint32_t prio_category = UINT32_MAX; 17507baf83fe7ae25ac87d38cd4fc19647b020adfadEnrico Granata for (uint32_t category_id = 0; 17607baf83fe7ae25ac87d38cd4fc19647b020adfadEnrico Granata category_id < num_categories; 17707baf83fe7ae25ac87d38cd4fc19647b020adfadEnrico Granata category_id++) 17807baf83fe7ae25ac87d38cd4fc19647b020adfadEnrico Granata { 17907baf83fe7ae25ac87d38cd4fc19647b020adfadEnrico Granata category_sp = GetCategoryAtIndex(category_id); 18007baf83fe7ae25ac87d38cd4fc19647b020adfadEnrico Granata if (category_sp->IsEnabled() == false) 18107baf83fe7ae25ac87d38cd4fc19647b020adfadEnrico Granata continue; 18207baf83fe7ae25ac87d38cd4fc19647b020adfadEnrico Granata lldb::TypeSummaryImplSP summary_current_sp = category_sp->GetSummaryForType(type_sp); 18307baf83fe7ae25ac87d38cd4fc19647b020adfadEnrico Granata if (summary_current_sp && (summary_chosen_sp.get() == NULL || (prio_category > category_sp->GetEnabledPosition()))) 18407baf83fe7ae25ac87d38cd4fc19647b020adfadEnrico Granata { 18507baf83fe7ae25ac87d38cd4fc19647b020adfadEnrico Granata prio_category = category_sp->GetEnabledPosition(); 18607baf83fe7ae25ac87d38cd4fc19647b020adfadEnrico Granata summary_chosen_sp = summary_current_sp; 18707baf83fe7ae25ac87d38cd4fc19647b020adfadEnrico Granata } 18807baf83fe7ae25ac87d38cd4fc19647b020adfadEnrico Granata } 18907baf83fe7ae25ac87d38cd4fc19647b020adfadEnrico Granata return summary_chosen_sp; 19007baf83fe7ae25ac87d38cd4fc19647b020adfadEnrico Granata} 19107baf83fe7ae25ac87d38cd4fc19647b020adfadEnrico Granata 19207baf83fe7ae25ac87d38cd4fc19647b020adfadEnrico Granatalldb::TypeFilterImplSP 19307baf83fe7ae25ac87d38cd4fc19647b020adfadEnrico GranataFormatManager::GetFilterForType (lldb::TypeNameSpecifierImplSP type_sp) 19407baf83fe7ae25ac87d38cd4fc19647b020adfadEnrico Granata{ 19507baf83fe7ae25ac87d38cd4fc19647b020adfadEnrico Granata if (!type_sp) 19607baf83fe7ae25ac87d38cd4fc19647b020adfadEnrico Granata return lldb::TypeFilterImplSP(); 19707baf83fe7ae25ac87d38cd4fc19647b020adfadEnrico Granata lldb::TypeFilterImplSP filter_chosen_sp; 19807baf83fe7ae25ac87d38cd4fc19647b020adfadEnrico Granata uint32_t num_categories = m_categories_map.GetCount(); 19907baf83fe7ae25ac87d38cd4fc19647b020adfadEnrico Granata lldb::TypeCategoryImplSP category_sp; 20007baf83fe7ae25ac87d38cd4fc19647b020adfadEnrico Granata uint32_t prio_category = UINT32_MAX; 20107baf83fe7ae25ac87d38cd4fc19647b020adfadEnrico Granata for (uint32_t category_id = 0; 20207baf83fe7ae25ac87d38cd4fc19647b020adfadEnrico Granata category_id < num_categories; 20307baf83fe7ae25ac87d38cd4fc19647b020adfadEnrico Granata category_id++) 20407baf83fe7ae25ac87d38cd4fc19647b020adfadEnrico Granata { 20507baf83fe7ae25ac87d38cd4fc19647b020adfadEnrico Granata category_sp = GetCategoryAtIndex(category_id); 20607baf83fe7ae25ac87d38cd4fc19647b020adfadEnrico Granata if (category_sp->IsEnabled() == false) 20707baf83fe7ae25ac87d38cd4fc19647b020adfadEnrico Granata continue; 20807baf83fe7ae25ac87d38cd4fc19647b020adfadEnrico Granata lldb::TypeFilterImplSP filter_current_sp((TypeFilterImpl*)category_sp->GetFilterForType(type_sp).get()); 20907baf83fe7ae25ac87d38cd4fc19647b020adfadEnrico Granata if (filter_current_sp && (filter_chosen_sp.get() == NULL || (prio_category > category_sp->GetEnabledPosition()))) 21007baf83fe7ae25ac87d38cd4fc19647b020adfadEnrico Granata { 21107baf83fe7ae25ac87d38cd4fc19647b020adfadEnrico Granata prio_category = category_sp->GetEnabledPosition(); 21207baf83fe7ae25ac87d38cd4fc19647b020adfadEnrico Granata filter_chosen_sp = filter_current_sp; 21307baf83fe7ae25ac87d38cd4fc19647b020adfadEnrico Granata } 21407baf83fe7ae25ac87d38cd4fc19647b020adfadEnrico Granata } 21507baf83fe7ae25ac87d38cd4fc19647b020adfadEnrico Granata return filter_chosen_sp; 21607baf83fe7ae25ac87d38cd4fc19647b020adfadEnrico Granata} 21707baf83fe7ae25ac87d38cd4fc19647b020adfadEnrico Granata 21845c47aabcb6b1b3861fd15e8cbe2fc7d7d44a71fJason Molenda#ifndef LLDB_DISABLE_PYTHON 219f509c5ec066599a3399fced39ea36996184939e8Enrico Granatalldb::ScriptedSyntheticChildrenSP 22007baf83fe7ae25ac87d38cd4fc19647b020adfadEnrico GranataFormatManager::GetSyntheticForType (lldb::TypeNameSpecifierImplSP type_sp) 22107baf83fe7ae25ac87d38cd4fc19647b020adfadEnrico Granata{ 22207baf83fe7ae25ac87d38cd4fc19647b020adfadEnrico Granata if (!type_sp) 223f509c5ec066599a3399fced39ea36996184939e8Enrico Granata return lldb::ScriptedSyntheticChildrenSP(); 224f509c5ec066599a3399fced39ea36996184939e8Enrico Granata lldb::ScriptedSyntheticChildrenSP synth_chosen_sp; 22507baf83fe7ae25ac87d38cd4fc19647b020adfadEnrico Granata uint32_t num_categories = m_categories_map.GetCount(); 22607baf83fe7ae25ac87d38cd4fc19647b020adfadEnrico Granata lldb::TypeCategoryImplSP category_sp; 22707baf83fe7ae25ac87d38cd4fc19647b020adfadEnrico Granata uint32_t prio_category = UINT32_MAX; 22807baf83fe7ae25ac87d38cd4fc19647b020adfadEnrico Granata for (uint32_t category_id = 0; 22907baf83fe7ae25ac87d38cd4fc19647b020adfadEnrico Granata category_id < num_categories; 23007baf83fe7ae25ac87d38cd4fc19647b020adfadEnrico Granata category_id++) 23107baf83fe7ae25ac87d38cd4fc19647b020adfadEnrico Granata { 23207baf83fe7ae25ac87d38cd4fc19647b020adfadEnrico Granata category_sp = GetCategoryAtIndex(category_id); 23307baf83fe7ae25ac87d38cd4fc19647b020adfadEnrico Granata if (category_sp->IsEnabled() == false) 23407baf83fe7ae25ac87d38cd4fc19647b020adfadEnrico Granata continue; 235f509c5ec066599a3399fced39ea36996184939e8Enrico Granata lldb::ScriptedSyntheticChildrenSP synth_current_sp((ScriptedSyntheticChildren*)category_sp->GetSyntheticForType(type_sp).get()); 23607baf83fe7ae25ac87d38cd4fc19647b020adfadEnrico Granata if (synth_current_sp && (synth_chosen_sp.get() == NULL || (prio_category > category_sp->GetEnabledPosition()))) 23707baf83fe7ae25ac87d38cd4fc19647b020adfadEnrico Granata { 23807baf83fe7ae25ac87d38cd4fc19647b020adfadEnrico Granata prio_category = category_sp->GetEnabledPosition(); 23907baf83fe7ae25ac87d38cd4fc19647b020adfadEnrico Granata synth_chosen_sp = synth_current_sp; 24007baf83fe7ae25ac87d38cd4fc19647b020adfadEnrico Granata } 24107baf83fe7ae25ac87d38cd4fc19647b020adfadEnrico Granata } 24207baf83fe7ae25ac87d38cd4fc19647b020adfadEnrico Granata return synth_chosen_sp; 24307baf83fe7ae25ac87d38cd4fc19647b020adfadEnrico Granata} 24445c47aabcb6b1b3861fd15e8cbe2fc7d7d44a71fJason Molenda#endif 24507baf83fe7ae25ac87d38cd4fc19647b020adfadEnrico Granata 24645c47aabcb6b1b3861fd15e8cbe2fc7d7d44a71fJason Molenda#ifndef LLDB_DISABLE_PYTHON 24707baf83fe7ae25ac87d38cd4fc19647b020adfadEnrico Granatalldb::SyntheticChildrenSP 24807baf83fe7ae25ac87d38cd4fc19647b020adfadEnrico GranataFormatManager::GetSyntheticChildrenForType (lldb::TypeNameSpecifierImplSP type_sp) 24907baf83fe7ae25ac87d38cd4fc19647b020adfadEnrico Granata{ 25007baf83fe7ae25ac87d38cd4fc19647b020adfadEnrico Granata if (!type_sp) 25107baf83fe7ae25ac87d38cd4fc19647b020adfadEnrico Granata return lldb::SyntheticChildrenSP(); 25207baf83fe7ae25ac87d38cd4fc19647b020adfadEnrico Granata lldb::TypeFilterImplSP filter_sp = GetFilterForType(type_sp); 253f509c5ec066599a3399fced39ea36996184939e8Enrico Granata lldb::ScriptedSyntheticChildrenSP synth_sp = GetSyntheticForType(type_sp); 25407baf83fe7ae25ac87d38cd4fc19647b020adfadEnrico Granata if (filter_sp->GetRevision() > synth_sp->GetRevision()) 25507baf83fe7ae25ac87d38cd4fc19647b020adfadEnrico Granata return lldb::SyntheticChildrenSP(filter_sp.get()); 25607baf83fe7ae25ac87d38cd4fc19647b020adfadEnrico Granata else 25707baf83fe7ae25ac87d38cd4fc19647b020adfadEnrico Granata return lldb::SyntheticChildrenSP(synth_sp.get()); 25807baf83fe7ae25ac87d38cd4fc19647b020adfadEnrico Granata} 25945c47aabcb6b1b3861fd15e8cbe2fc7d7d44a71fJason Molenda#endif 26007baf83fe7ae25ac87d38cd4fc19647b020adfadEnrico Granata 26116376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granatalldb::TypeCategoryImplSP 262915448044bac6fdac22a33cc46697dcb771a8df2Enrico GranataFormatManager::GetCategory (const ConstString& category_name, 2632c6a3d80dab3cf50c26fefe037357a4e6e621258Enrico Granata bool can_create) 2642c6a3d80dab3cf50c26fefe037357a4e6e621258Enrico Granata{ 2652c6a3d80dab3cf50c26fefe037357a4e6e621258Enrico Granata if (!category_name) 266915448044bac6fdac22a33cc46697dcb771a8df2Enrico Granata return GetCategory(m_default_category_name); 26716376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata lldb::TypeCategoryImplSP category; 2682c6a3d80dab3cf50c26fefe037357a4e6e621258Enrico Granata if (m_categories_map.Get(category_name, category)) 2692c6a3d80dab3cf50c26fefe037357a4e6e621258Enrico Granata return category; 2702c6a3d80dab3cf50c26fefe037357a4e6e621258Enrico Granata 2712c6a3d80dab3cf50c26fefe037357a4e6e621258Enrico Granata if (!can_create) 27216376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata return lldb::TypeCategoryImplSP(); 2732c6a3d80dab3cf50c26fefe037357a4e6e621258Enrico Granata 27416376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata m_categories_map.Add(category_name,lldb::TypeCategoryImplSP(new TypeCategoryImpl(this, category_name))); 275915448044bac6fdac22a33cc46697dcb771a8df2Enrico Granata return GetCategory(category_name); 2762c6a3d80dab3cf50c26fefe037357a4e6e621258Enrico Granata} 2772c6a3d80dab3cf50c26fefe037357a4e6e621258Enrico Granata 27886e7c3ecb82655e77581ec042aa6b31753a42afcEnrico Granatalldb::Format 27986e7c3ecb82655e77581ec042aa6b31753a42afcEnrico GranataFormatManager::GetSingleItemFormat(lldb::Format vector_format) 28086e7c3ecb82655e77581ec042aa6b31753a42afcEnrico Granata{ 28186e7c3ecb82655e77581ec042aa6b31753a42afcEnrico Granata switch(vector_format) 28286e7c3ecb82655e77581ec042aa6b31753a42afcEnrico Granata { 28386e7c3ecb82655e77581ec042aa6b31753a42afcEnrico Granata case eFormatVectorOfChar: 28486e7c3ecb82655e77581ec042aa6b31753a42afcEnrico Granata return eFormatCharArray; 28586e7c3ecb82655e77581ec042aa6b31753a42afcEnrico Granata 28686e7c3ecb82655e77581ec042aa6b31753a42afcEnrico Granata case eFormatVectorOfSInt8: 28786e7c3ecb82655e77581ec042aa6b31753a42afcEnrico Granata case eFormatVectorOfSInt16: 28886e7c3ecb82655e77581ec042aa6b31753a42afcEnrico Granata case eFormatVectorOfSInt32: 28986e7c3ecb82655e77581ec042aa6b31753a42afcEnrico Granata case eFormatVectorOfSInt64: 29086e7c3ecb82655e77581ec042aa6b31753a42afcEnrico Granata return eFormatDecimal; 29186e7c3ecb82655e77581ec042aa6b31753a42afcEnrico Granata 29286e7c3ecb82655e77581ec042aa6b31753a42afcEnrico Granata case eFormatVectorOfUInt8: 29386e7c3ecb82655e77581ec042aa6b31753a42afcEnrico Granata case eFormatVectorOfUInt16: 29486e7c3ecb82655e77581ec042aa6b31753a42afcEnrico Granata case eFormatVectorOfUInt32: 29586e7c3ecb82655e77581ec042aa6b31753a42afcEnrico Granata case eFormatVectorOfUInt64: 29686e7c3ecb82655e77581ec042aa6b31753a42afcEnrico Granata case eFormatVectorOfUInt128: 29786e7c3ecb82655e77581ec042aa6b31753a42afcEnrico Granata return eFormatHex; 29886e7c3ecb82655e77581ec042aa6b31753a42afcEnrico Granata 29986e7c3ecb82655e77581ec042aa6b31753a42afcEnrico Granata case eFormatVectorOfFloat32: 30086e7c3ecb82655e77581ec042aa6b31753a42afcEnrico Granata case eFormatVectorOfFloat64: 30186e7c3ecb82655e77581ec042aa6b31753a42afcEnrico Granata return eFormatFloat; 30286e7c3ecb82655e77581ec042aa6b31753a42afcEnrico Granata 30386e7c3ecb82655e77581ec042aa6b31753a42afcEnrico Granata default: 30486e7c3ecb82655e77581ec042aa6b31753a42afcEnrico Granata return lldb::eFormatInvalid; 30586e7c3ecb82655e77581ec042aa6b31753a42afcEnrico Granata } 306153ccd72f52a6cc3595d7614558e2954f67833ebGreg Clayton} 307f501c5913d5daaf45a906477bdf466bb74ed10fbEnrico Granata 308d3a86a2bad17204570577dbafc51f3b107310de8Enrico GranataConstString 309d3a86a2bad17204570577dbafc51f3b107310de8Enrico GranataFormatManager::GetValidTypeName (const ConstString& type) 310d3a86a2bad17204570577dbafc51f3b107310de8Enrico Granata{ 311d3a86a2bad17204570577dbafc51f3b107310de8Enrico Granata return ::GetValidTypeName_Impl(type); 312d3a86a2bad17204570577dbafc51f3b107310de8Enrico Granata} 313d3a86a2bad17204570577dbafc51f3b107310de8Enrico Granata 314f509c5ec066599a3399fced39ea36996184939e8Enrico GranataConstString 315f509c5ec066599a3399fced39ea36996184939e8Enrico GranataGetTypeForCache (ValueObject& valobj, 316f509c5ec066599a3399fced39ea36996184939e8Enrico Granata lldb::DynamicValueType use_dynamic) 317f509c5ec066599a3399fced39ea36996184939e8Enrico Granata{ 318f509c5ec066599a3399fced39ea36996184939e8Enrico Granata if (use_dynamic == lldb::eNoDynamicValues) 319f509c5ec066599a3399fced39ea36996184939e8Enrico Granata { 320f509c5ec066599a3399fced39ea36996184939e8Enrico Granata if (valobj.IsDynamic()) 321f509c5ec066599a3399fced39ea36996184939e8Enrico Granata { 322f509c5ec066599a3399fced39ea36996184939e8Enrico Granata if (valobj.GetStaticValue()) 323f509c5ec066599a3399fced39ea36996184939e8Enrico Granata return valobj.GetStaticValue()->GetQualifiedTypeName(); 324f509c5ec066599a3399fced39ea36996184939e8Enrico Granata else 325f509c5ec066599a3399fced39ea36996184939e8Enrico Granata return ConstString(); 326f509c5ec066599a3399fced39ea36996184939e8Enrico Granata } 327f509c5ec066599a3399fced39ea36996184939e8Enrico Granata else 328f509c5ec066599a3399fced39ea36996184939e8Enrico Granata return valobj.GetQualifiedTypeName(); 329f509c5ec066599a3399fced39ea36996184939e8Enrico Granata } 330f509c5ec066599a3399fced39ea36996184939e8Enrico Granata if (valobj.IsDynamic()) 331f509c5ec066599a3399fced39ea36996184939e8Enrico Granata return valobj.GetQualifiedTypeName(); 332f509c5ec066599a3399fced39ea36996184939e8Enrico Granata if (valobj.GetDynamicValue(use_dynamic)) 333f509c5ec066599a3399fced39ea36996184939e8Enrico Granata return valobj.GetDynamicValue(use_dynamic)->GetQualifiedTypeName(); 334f509c5ec066599a3399fced39ea36996184939e8Enrico Granata return ConstString(); 335f509c5ec066599a3399fced39ea36996184939e8Enrico Granata} 336f509c5ec066599a3399fced39ea36996184939e8Enrico Granata 337f509c5ec066599a3399fced39ea36996184939e8Enrico Granatalldb::TypeSummaryImplSP 338f509c5ec066599a3399fced39ea36996184939e8Enrico GranataFormatManager::GetSummaryFormat (ValueObject& valobj, 339f509c5ec066599a3399fced39ea36996184939e8Enrico Granata lldb::DynamicValueType use_dynamic) 340f509c5ec066599a3399fced39ea36996184939e8Enrico Granata{ 341f509c5ec066599a3399fced39ea36996184939e8Enrico Granata TypeSummaryImplSP retval; 342952e9dc874944fcdbbb224f3ec4fc2c859376f64Greg Clayton Log *log(lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_TYPES)); 343f509c5ec066599a3399fced39ea36996184939e8Enrico Granata ConstString valobj_type(GetTypeForCache(valobj, use_dynamic)); 344f509c5ec066599a3399fced39ea36996184939e8Enrico Granata if (valobj_type) 345f509c5ec066599a3399fced39ea36996184939e8Enrico Granata { 346f509c5ec066599a3399fced39ea36996184939e8Enrico Granata if (log) 347b6a4c565732b3a7b546ba2aa0e7aec3a4bb359a4Enrico Granata log->Printf("\n\n[FormatManager::GetSummaryFormat] Looking into cache for type %s", valobj_type.AsCString("<invalid>")); 348f509c5ec066599a3399fced39ea36996184939e8Enrico Granata if (m_format_cache.GetSummary(valobj_type,retval)) 349b6a4c565732b3a7b546ba2aa0e7aec3a4bb359a4Enrico Granata { 350b6a4c565732b3a7b546ba2aa0e7aec3a4bb359a4Enrico Granata if (log) 351b6a4c565732b3a7b546ba2aa0e7aec3a4bb359a4Enrico Granata { 352b6a4c565732b3a7b546ba2aa0e7aec3a4bb359a4Enrico Granata log->Printf("[FormatManager::GetSummaryFormat] Cache search success. Returning."); 353a227fcd20fb7479e43b3890ed35a4c5cc0671dd0Enrico Granata if (log->GetDebug()) 3543160832f026e60e832da55f90993a40ad132e360Michael Sartain log->Printf("[FormatManager::GetSummaryFormat] Cache hits: %" PRIu64 " - Cache Misses: %" PRIu64, m_format_cache.GetCacheHits(), m_format_cache.GetCacheMisses()); 355b6a4c565732b3a7b546ba2aa0e7aec3a4bb359a4Enrico Granata } 356f509c5ec066599a3399fced39ea36996184939e8Enrico Granata return retval; 357b6a4c565732b3a7b546ba2aa0e7aec3a4bb359a4Enrico Granata } 358f509c5ec066599a3399fced39ea36996184939e8Enrico Granata if (log) 359f509c5ec066599a3399fced39ea36996184939e8Enrico Granata log->Printf("[FormatManager::GetSummaryFormat] Cache search failed. Going normal route"); 360f509c5ec066599a3399fced39ea36996184939e8Enrico Granata } 361f509c5ec066599a3399fced39ea36996184939e8Enrico Granata retval = m_categories_map.GetSummaryFormat(valobj, use_dynamic); 362f509c5ec066599a3399fced39ea36996184939e8Enrico Granata if (valobj_type) 363f509c5ec066599a3399fced39ea36996184939e8Enrico Granata { 364f509c5ec066599a3399fced39ea36996184939e8Enrico Granata if (log) 365f509c5ec066599a3399fced39ea36996184939e8Enrico Granata log->Printf("[FormatManager::GetSummaryFormat] Caching %p for type %s",retval.get(),valobj_type.AsCString("<invalid>")); 366f509c5ec066599a3399fced39ea36996184939e8Enrico Granata m_format_cache.SetSummary(valobj_type,retval); 367f509c5ec066599a3399fced39ea36996184939e8Enrico Granata } 368a227fcd20fb7479e43b3890ed35a4c5cc0671dd0Enrico Granata if (log && log->GetDebug()) 3693160832f026e60e832da55f90993a40ad132e360Michael Sartain log->Printf("[FormatManager::GetSummaryFormat] Cache hits: %" PRIu64 " - Cache Misses: %" PRIu64, m_format_cache.GetCacheHits(), m_format_cache.GetCacheMisses()); 370f509c5ec066599a3399fced39ea36996184939e8Enrico Granata return retval; 371f509c5ec066599a3399fced39ea36996184939e8Enrico Granata} 372f509c5ec066599a3399fced39ea36996184939e8Enrico Granata 373f509c5ec066599a3399fced39ea36996184939e8Enrico Granata#ifndef LLDB_DISABLE_PYTHON 374f509c5ec066599a3399fced39ea36996184939e8Enrico Granatalldb::SyntheticChildrenSP 375f509c5ec066599a3399fced39ea36996184939e8Enrico GranataFormatManager::GetSyntheticChildren (ValueObject& valobj, 376a227fcd20fb7479e43b3890ed35a4c5cc0671dd0Enrico Granata lldb::DynamicValueType use_dynamic) 377f509c5ec066599a3399fced39ea36996184939e8Enrico Granata{ 378f509c5ec066599a3399fced39ea36996184939e8Enrico Granata SyntheticChildrenSP retval; 379952e9dc874944fcdbbb224f3ec4fc2c859376f64Greg Clayton Log *log(lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_TYPES)); 380f509c5ec066599a3399fced39ea36996184939e8Enrico Granata ConstString valobj_type(GetTypeForCache(valobj, use_dynamic)); 381f509c5ec066599a3399fced39ea36996184939e8Enrico Granata if (valobj_type) 382f509c5ec066599a3399fced39ea36996184939e8Enrico Granata { 383f509c5ec066599a3399fced39ea36996184939e8Enrico Granata if (log) 384b6a4c565732b3a7b546ba2aa0e7aec3a4bb359a4Enrico Granata log->Printf("\n\n[FormatManager::GetSyntheticChildren] Looking into cache for type %s", valobj_type.AsCString("<invalid>")); 385f509c5ec066599a3399fced39ea36996184939e8Enrico Granata if (m_format_cache.GetSynthetic(valobj_type,retval)) 386b6a4c565732b3a7b546ba2aa0e7aec3a4bb359a4Enrico Granata { 387b6a4c565732b3a7b546ba2aa0e7aec3a4bb359a4Enrico Granata if (log) 388b6a4c565732b3a7b546ba2aa0e7aec3a4bb359a4Enrico Granata { 389b6a4c565732b3a7b546ba2aa0e7aec3a4bb359a4Enrico Granata log->Printf("[FormatManager::GetSyntheticChildren] Cache search success. Returning."); 390a227fcd20fb7479e43b3890ed35a4c5cc0671dd0Enrico Granata if (log->GetDebug()) 3913160832f026e60e832da55f90993a40ad132e360Michael Sartain log->Printf("[FormatManager::GetSyntheticChildren] Cache hits: %" PRIu64 " - Cache Misses: %" PRIu64, m_format_cache.GetCacheHits(), m_format_cache.GetCacheMisses()); 392b6a4c565732b3a7b546ba2aa0e7aec3a4bb359a4Enrico Granata } 393f509c5ec066599a3399fced39ea36996184939e8Enrico Granata return retval; 394b6a4c565732b3a7b546ba2aa0e7aec3a4bb359a4Enrico Granata } 395f509c5ec066599a3399fced39ea36996184939e8Enrico Granata if (log) 396b6a4c565732b3a7b546ba2aa0e7aec3a4bb359a4Enrico Granata log->Printf("[FormatManager::GetSyntheticChildren] Cache search failed. Going normal route"); 397f509c5ec066599a3399fced39ea36996184939e8Enrico Granata } 398f509c5ec066599a3399fced39ea36996184939e8Enrico Granata retval = m_categories_map.GetSyntheticChildren(valobj, use_dynamic); 399f509c5ec066599a3399fced39ea36996184939e8Enrico Granata if (valobj_type) 400f509c5ec066599a3399fced39ea36996184939e8Enrico Granata { 401f509c5ec066599a3399fced39ea36996184939e8Enrico Granata if (log) 402b6a4c565732b3a7b546ba2aa0e7aec3a4bb359a4Enrico Granata log->Printf("[FormatManager::GetSyntheticChildren] Caching %p for type %s",retval.get(),valobj_type.AsCString("<invalid>")); 403f509c5ec066599a3399fced39ea36996184939e8Enrico Granata m_format_cache.SetSynthetic(valobj_type,retval); 404f509c5ec066599a3399fced39ea36996184939e8Enrico Granata } 405a227fcd20fb7479e43b3890ed35a4c5cc0671dd0Enrico Granata if (log && log->GetDebug()) 4063160832f026e60e832da55f90993a40ad132e360Michael Sartain log->Printf("[FormatManager::GetSyntheticChildren] Cache hits: %" PRIu64 " - Cache Misses: %" PRIu64, m_format_cache.GetCacheHits(), m_format_cache.GetCacheMisses()); 407f509c5ec066599a3399fced39ea36996184939e8Enrico Granata return retval; 408f509c5ec066599a3399fced39ea36996184939e8Enrico Granata} 409f509c5ec066599a3399fced39ea36996184939e8Enrico Granata#endif 410f509c5ec066599a3399fced39ea36996184939e8Enrico Granata 411f509c5ec066599a3399fced39ea36996184939e8Enrico GranataFormatManager::FormatManager() : 412f509c5ec066599a3399fced39ea36996184939e8Enrico Granata m_format_cache(), 413f501c5913d5daaf45a906477bdf466bb74ed10fbEnrico Granata m_value_nav("format",this), 414f501c5913d5daaf45a906477bdf466bb74ed10fbEnrico Granata m_named_summaries_map(this), 415f501c5913d5daaf45a906477bdf466bb74ed10fbEnrico Granata m_last_revision(0), 416f501c5913d5daaf45a906477bdf466bb74ed10fbEnrico Granata m_categories_map(this), 417b0968f5c6b8c15d5cb223676686e014eb12c44c1Enrico Granata m_default_category_name(ConstString("default")), 418b0968f5c6b8c15d5cb223676686e014eb12c44c1Enrico Granata m_system_category_name(ConstString("system")), 419b8dc733bd264edb688129dcc3103fb5ba4c9f060Enrico Granata m_gnu_cpp_category_name(ConstString("gnu-libstdc++")), 42066205ce5381ab6db1f9bff83c483a4dc5854afc7Enrico Granata m_libcxx_category_name(ConstString("libcxx")), 421d760907c1d42726fa0c8c48efa28385ed339bb94Enrico Granata m_objc_category_name(ConstString("objc")), 422d760907c1d42726fa0c8c48efa28385ed339bb94Enrico Granata m_corefoundation_category_name(ConstString("CoreFoundation")), 423d760907c1d42726fa0c8c48efa28385ed339bb94Enrico Granata m_coregraphics_category_name(ConstString("CoreGraphics")), 424d760907c1d42726fa0c8c48efa28385ed339bb94Enrico Granata m_coreservices_category_name(ConstString("CoreServices")), 4258f84cfb6f46256ae98a40fd217b206f48b7345c8Enrico Granata m_vectortypes_category_name(ConstString("VectorTypes")), 4268f84cfb6f46256ae98a40fd217b206f48b7345c8Enrico Granata m_appkit_category_name(ConstString("AppKit")) 427f501c5913d5daaf45a906477bdf466bb74ed10fbEnrico Granata{ 428d760907c1d42726fa0c8c48efa28385ed339bb94Enrico Granata LoadSystemFormatters(); 42915c1d3d6773de8fc5600a80b0b666eadfa5672d8Enrico Granata LoadLibStdcppFormatters(); 43066205ce5381ab6db1f9bff83c483a4dc5854afc7Enrico Granata LoadLibcxxFormatters(); 431d760907c1d42726fa0c8c48efa28385ed339bb94Enrico Granata LoadObjCFormatters(); 432f501c5913d5daaf45a906477bdf466bb74ed10fbEnrico Granata 433f509c5ec066599a3399fced39ea36996184939e8Enrico Granata EnableCategory(m_objc_category_name,TypeCategoryMap::Last); 434f509c5ec066599a3399fced39ea36996184939e8Enrico Granata EnableCategory(m_corefoundation_category_name,TypeCategoryMap::Last); 435f509c5ec066599a3399fced39ea36996184939e8Enrico Granata EnableCategory(m_appkit_category_name,TypeCategoryMap::Last); 436f509c5ec066599a3399fced39ea36996184939e8Enrico Granata EnableCategory(m_coreservices_category_name,TypeCategoryMap::Last); 437f509c5ec066599a3399fced39ea36996184939e8Enrico Granata EnableCategory(m_coregraphics_category_name,TypeCategoryMap::Last); 438f509c5ec066599a3399fced39ea36996184939e8Enrico Granata EnableCategory(m_gnu_cpp_category_name,TypeCategoryMap::Last); 439f509c5ec066599a3399fced39ea36996184939e8Enrico Granata EnableCategory(m_libcxx_category_name,TypeCategoryMap::Last); 440f509c5ec066599a3399fced39ea36996184939e8Enrico Granata EnableCategory(m_vectortypes_category_name,TypeCategoryMap::Last); 441f509c5ec066599a3399fced39ea36996184939e8Enrico Granata EnableCategory(m_system_category_name,TypeCategoryMap::Last); 442d760907c1d42726fa0c8c48efa28385ed339bb94Enrico Granata} 443d760907c1d42726fa0c8c48efa28385ed339bb94Enrico Granata 444f5545f966367811c36e2a3db2d82b1398b58c2c4Enrico Granatastatic void 445f5545f966367811c36e2a3db2d82b1398b58c2c4Enrico GranataAddStringSummary(TypeCategoryImpl::SharedPointer category_sp, 446f5545f966367811c36e2a3db2d82b1398b58c2c4Enrico Granata const char* string, 447f5545f966367811c36e2a3db2d82b1398b58c2c4Enrico Granata ConstString type_name, 44832d7ee3d2969211e104a27fcfcd636f249b26559Enrico Granata TypeSummaryImpl::Flags flags, 44932d7ee3d2969211e104a27fcfcd636f249b26559Enrico Granata bool regex = false) 450f5545f966367811c36e2a3db2d82b1398b58c2c4Enrico Granata{ 451f5545f966367811c36e2a3db2d82b1398b58c2c4Enrico Granata lldb::TypeSummaryImplSP summary_sp(new StringSummaryFormat(flags, 452f5545f966367811c36e2a3db2d82b1398b58c2c4Enrico Granata string)); 45332d7ee3d2969211e104a27fcfcd636f249b26559Enrico Granata 45432d7ee3d2969211e104a27fcfcd636f249b26559Enrico Granata if (regex) 4558f0f4751e12a4f8d2b6bf359ee4e0853b0d6cd23Enrico Granata category_sp->GetRegexSummaryNavigator()->Add(RegularExpressionSP(new RegularExpression(type_name.AsCString())),summary_sp); 45632d7ee3d2969211e104a27fcfcd636f249b26559Enrico Granata else 45732d7ee3d2969211e104a27fcfcd636f249b26559Enrico Granata category_sp->GetSummaryNavigator()->Add(type_name, summary_sp); 458f5545f966367811c36e2a3db2d82b1398b58c2c4Enrico Granata} 459f5545f966367811c36e2a3db2d82b1398b58c2c4Enrico Granata 460f5545f966367811c36e2a3db2d82b1398b58c2c4Enrico Granata#ifndef LLDB_DISABLE_PYTHON 461f5545f966367811c36e2a3db2d82b1398b58c2c4Enrico Granatastatic void 462f5545f966367811c36e2a3db2d82b1398b58c2c4Enrico GranataAddScriptSummary(TypeCategoryImpl::SharedPointer category_sp, 463f5545f966367811c36e2a3db2d82b1398b58c2c4Enrico Granata const char* funct_name, 464f5545f966367811c36e2a3db2d82b1398b58c2c4Enrico Granata ConstString type_name, 46532d7ee3d2969211e104a27fcfcd636f249b26559Enrico Granata TypeSummaryImpl::Flags flags, 46632d7ee3d2969211e104a27fcfcd636f249b26559Enrico Granata bool regex = false) 467f5545f966367811c36e2a3db2d82b1398b58c2c4Enrico Granata{ 468f5545f966367811c36e2a3db2d82b1398b58c2c4Enrico Granata 469f5545f966367811c36e2a3db2d82b1398b58c2c4Enrico Granata std::string code(" "); 470f5545f966367811c36e2a3db2d82b1398b58c2c4Enrico Granata code.append(funct_name).append("(valobj,internal_dict)"); 471f5545f966367811c36e2a3db2d82b1398b58c2c4Enrico Granata 472f5545f966367811c36e2a3db2d82b1398b58c2c4Enrico Granata lldb::TypeSummaryImplSP summary_sp(new ScriptSummaryFormat(flags, 473f5545f966367811c36e2a3db2d82b1398b58c2c4Enrico Granata funct_name, 474f5545f966367811c36e2a3db2d82b1398b58c2c4Enrico Granata code.c_str())); 47532d7ee3d2969211e104a27fcfcd636f249b26559Enrico Granata if (regex) 4768f0f4751e12a4f8d2b6bf359ee4e0853b0d6cd23Enrico Granata category_sp->GetRegexSummaryNavigator()->Add(RegularExpressionSP(new RegularExpression(type_name.AsCString())),summary_sp); 47732d7ee3d2969211e104a27fcfcd636f249b26559Enrico Granata else 47832d7ee3d2969211e104a27fcfcd636f249b26559Enrico Granata category_sp->GetSummaryNavigator()->Add(type_name, summary_sp); 479f5545f966367811c36e2a3db2d82b1398b58c2c4Enrico Granata} 480f5545f966367811c36e2a3db2d82b1398b58c2c4Enrico Granata#endif 481f5545f966367811c36e2a3db2d82b1398b58c2c4Enrico Granata 482f5545f966367811c36e2a3db2d82b1398b58c2c4Enrico Granata#ifndef LLDB_DISABLE_PYTHON 483f5545f966367811c36e2a3db2d82b1398b58c2c4Enrico Granatastatic void 484f5545f966367811c36e2a3db2d82b1398b58c2c4Enrico GranataAddCXXSummary (TypeCategoryImpl::SharedPointer category_sp, 485f5545f966367811c36e2a3db2d82b1398b58c2c4Enrico Granata CXXFunctionSummaryFormat::Callback funct, 486f5545f966367811c36e2a3db2d82b1398b58c2c4Enrico Granata const char* description, 487f5545f966367811c36e2a3db2d82b1398b58c2c4Enrico Granata ConstString type_name, 48832d7ee3d2969211e104a27fcfcd636f249b26559Enrico Granata TypeSummaryImpl::Flags flags, 48932d7ee3d2969211e104a27fcfcd636f249b26559Enrico Granata bool regex = false) 490f5545f966367811c36e2a3db2d82b1398b58c2c4Enrico Granata{ 491f5545f966367811c36e2a3db2d82b1398b58c2c4Enrico Granata lldb::TypeSummaryImplSP summary_sp(new CXXFunctionSummaryFormat(flags,funct,description)); 49232d7ee3d2969211e104a27fcfcd636f249b26559Enrico Granata if (regex) 4938f0f4751e12a4f8d2b6bf359ee4e0853b0d6cd23Enrico Granata category_sp->GetRegexSummaryNavigator()->Add(RegularExpressionSP(new RegularExpression(type_name.AsCString())),summary_sp); 49432d7ee3d2969211e104a27fcfcd636f249b26559Enrico Granata else 49532d7ee3d2969211e104a27fcfcd636f249b26559Enrico Granata category_sp->GetSummaryNavigator()->Add(type_name, summary_sp); 496f5545f966367811c36e2a3db2d82b1398b58c2c4Enrico Granata} 497f5545f966367811c36e2a3db2d82b1398b58c2c4Enrico Granata#endif 498f5545f966367811c36e2a3db2d82b1398b58c2c4Enrico Granata 499f5545f966367811c36e2a3db2d82b1398b58c2c4Enrico Granata#ifndef LLDB_DISABLE_PYTHON 500f5545f966367811c36e2a3db2d82b1398b58c2c4Enrico Granatastatic void AddCXXSynthetic (TypeCategoryImpl::SharedPointer category_sp, 501f5545f966367811c36e2a3db2d82b1398b58c2c4Enrico Granata CXXSyntheticChildren::CreateFrontEndCallback generator, 502f5545f966367811c36e2a3db2d82b1398b58c2c4Enrico Granata const char* description, 503f5545f966367811c36e2a3db2d82b1398b58c2c4Enrico Granata ConstString type_name, 50432d7ee3d2969211e104a27fcfcd636f249b26559Enrico Granata ScriptedSyntheticChildren::Flags flags, 50532d7ee3d2969211e104a27fcfcd636f249b26559Enrico Granata bool regex = false) 506f5545f966367811c36e2a3db2d82b1398b58c2c4Enrico Granata{ 507f5545f966367811c36e2a3db2d82b1398b58c2c4Enrico Granata lldb::SyntheticChildrenSP synth_sp(new CXXSyntheticChildren(flags,description,generator)); 50832d7ee3d2969211e104a27fcfcd636f249b26559Enrico Granata if (regex) 50932d7ee3d2969211e104a27fcfcd636f249b26559Enrico Granata category_sp->GetRegexSyntheticNavigator()->Add(RegularExpressionSP(new RegularExpression(type_name.AsCString())), synth_sp); 51032d7ee3d2969211e104a27fcfcd636f249b26559Enrico Granata else 51132d7ee3d2969211e104a27fcfcd636f249b26559Enrico Granata category_sp->GetSyntheticNavigator()->Add(type_name,synth_sp); 512f5545f966367811c36e2a3db2d82b1398b58c2c4Enrico Granata} 513f5545f966367811c36e2a3db2d82b1398b58c2c4Enrico Granata#endif 514f5545f966367811c36e2a3db2d82b1398b58c2c4Enrico Granata 515d760907c1d42726fa0c8c48efa28385ed339bb94Enrico Granatavoid 51615c1d3d6773de8fc5600a80b0b666eadfa5672d8Enrico GranataFormatManager::LoadLibStdcppFormatters() 517d760907c1d42726fa0c8c48efa28385ed339bb94Enrico Granata{ 51886fcb16c848b7503b2d082158886359ef76f1a84Enrico Granata TypeSummaryImpl::Flags stl_summary_flags; 51986fcb16c848b7503b2d082158886359ef76f1a84Enrico Granata stl_summary_flags.SetCascades(true) 52086fcb16c848b7503b2d082158886359ef76f1a84Enrico Granata .SetSkipPointers(false) 52186fcb16c848b7503b2d082158886359ef76f1a84Enrico Granata .SetSkipReferences(false) 52286fcb16c848b7503b2d082158886359ef76f1a84Enrico Granata .SetDontShowChildren(true) 52386fcb16c848b7503b2d082158886359ef76f1a84Enrico Granata .SetDontShowValue(true) 52486fcb16c848b7503b2d082158886359ef76f1a84Enrico Granata .SetShowMembersOneLiner(false) 52586fcb16c848b7503b2d082158886359ef76f1a84Enrico Granata .SetHideItemNames(false); 52686fcb16c848b7503b2d082158886359ef76f1a84Enrico Granata 52786fcb16c848b7503b2d082158886359ef76f1a84Enrico Granata lldb::TypeSummaryImplSP std_string_summary_sp(new StringSummaryFormat(stl_summary_flags, 52816376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata "${var._M_dataplus._M_p}")); 529915448044bac6fdac22a33cc46697dcb771a8df2Enrico Granata 53016376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata TypeCategoryImpl::SharedPointer gnu_category_sp = GetCategory(m_gnu_cpp_category_name); 531915448044bac6fdac22a33cc46697dcb771a8df2Enrico Granata 532915448044bac6fdac22a33cc46697dcb771a8df2Enrico Granata gnu_category_sp->GetSummaryNavigator()->Add(ConstString("std::string"), 533915448044bac6fdac22a33cc46697dcb771a8df2Enrico Granata std_string_summary_sp); 534915448044bac6fdac22a33cc46697dcb771a8df2Enrico Granata gnu_category_sp->GetSummaryNavigator()->Add(ConstString("std::basic_string<char>"), 535915448044bac6fdac22a33cc46697dcb771a8df2Enrico Granata std_string_summary_sp); 536915448044bac6fdac22a33cc46697dcb771a8df2Enrico Granata gnu_category_sp->GetSummaryNavigator()->Add(ConstString("std::basic_string<char,std::char_traits<char>,std::allocator<char> >"), 537915448044bac6fdac22a33cc46697dcb771a8df2Enrico Granata std_string_summary_sp); 538dc0a38c5a727cae5362b218a3180d0f4265a619dGreg Clayton gnu_category_sp->GetSummaryNavigator()->Add(ConstString("std::basic_string<char, std::char_traits<char>, std::allocator<char> >"), 5392f2c277dd88f3e252394f70516b63f757d1a09a3Enrico Granata std_string_summary_sp); 540d760907c1d42726fa0c8c48efa28385ed339bb94Enrico Granata 54115c1d3d6773de8fc5600a80b0b666eadfa5672d8Enrico Granata // making sure we force-pick the summary for printing wstring (_M_p is a wchar_t*) 54215c1d3d6773de8fc5600a80b0b666eadfa5672d8Enrico Granata lldb::TypeSummaryImplSP std_wstring_summary_sp(new StringSummaryFormat(stl_summary_flags, 54315c1d3d6773de8fc5600a80b0b666eadfa5672d8Enrico Granata "${var._M_dataplus._M_p%S}")); 54415c1d3d6773de8fc5600a80b0b666eadfa5672d8Enrico Granata 54515c1d3d6773de8fc5600a80b0b666eadfa5672d8Enrico Granata gnu_category_sp->GetSummaryNavigator()->Add(ConstString("std::wstring"), 54615c1d3d6773de8fc5600a80b0b666eadfa5672d8Enrico Granata std_wstring_summary_sp); 54715c1d3d6773de8fc5600a80b0b666eadfa5672d8Enrico Granata gnu_category_sp->GetSummaryNavigator()->Add(ConstString("std::basic_string<wchar_t>"), 54815c1d3d6773de8fc5600a80b0b666eadfa5672d8Enrico Granata std_wstring_summary_sp); 54915c1d3d6773de8fc5600a80b0b666eadfa5672d8Enrico Granata gnu_category_sp->GetSummaryNavigator()->Add(ConstString("std::basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >"), 55015c1d3d6773de8fc5600a80b0b666eadfa5672d8Enrico Granata std_wstring_summary_sp); 55115c1d3d6773de8fc5600a80b0b666eadfa5672d8Enrico Granata gnu_category_sp->GetSummaryNavigator()->Add(ConstString("std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >"), 55215c1d3d6773de8fc5600a80b0b666eadfa5672d8Enrico Granata std_wstring_summary_sp); 55315c1d3d6773de8fc5600a80b0b666eadfa5672d8Enrico Granata 554915448044bac6fdac22a33cc46697dcb771a8df2Enrico Granata 5553e4238d47a6d1a3106f357d2e7b495870721c7aeGreg Clayton#ifndef LLDB_DISABLE_PYTHON 55616376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 55716376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata SyntheticChildren::Flags stl_synth_flags; 55816376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata stl_synth_flags.SetCascades(true).SetSkipPointers(false).SetSkipReferences(false); 55916376ed044df3ee70fcf69e19f06af01e71a8e9aEnrico Granata 560dba1de8d585f27601162f674d30ab71d9c83ccdeEnrico Granata gnu_category_sp->GetRegexSyntheticNavigator()->Add(RegularExpressionSP(new RegularExpression("^std::vector<.+>(( )?&)?$")), 561f509c5ec066599a3399fced39ea36996184939e8Enrico Granata SyntheticChildrenSP(new ScriptedSyntheticChildren(stl_synth_flags, 562a5c2ce05705f784fd4ada97823af6ff7006fea58Enrico Granata "lldb.formatters.cpp.gnu_libstdcpp.StdVectorSynthProvider"))); 563dba1de8d585f27601162f674d30ab71d9c83ccdeEnrico Granata gnu_category_sp->GetRegexSyntheticNavigator()->Add(RegularExpressionSP(new RegularExpression("^std::map<.+> >(( )?&)?$")), 564f509c5ec066599a3399fced39ea36996184939e8Enrico Granata SyntheticChildrenSP(new ScriptedSyntheticChildren(stl_synth_flags, 565a5c2ce05705f784fd4ada97823af6ff7006fea58Enrico Granata "lldb.formatters.cpp.gnu_libstdcpp.StdMapSynthProvider"))); 566dba1de8d585f27601162f674d30ab71d9c83ccdeEnrico Granata gnu_category_sp->GetRegexSyntheticNavigator()->Add(RegularExpressionSP(new RegularExpression("^std::list<.+>(( )?&)?$")), 567f509c5ec066599a3399fced39ea36996184939e8Enrico Granata SyntheticChildrenSP(new ScriptedSyntheticChildren(stl_synth_flags, 568a5c2ce05705f784fd4ada97823af6ff7006fea58Enrico Granata "lldb.formatters.cpp.gnu_libstdcpp.StdListSynthProvider"))); 56986fcb16c848b7503b2d082158886359ef76f1a84Enrico Granata 57098b449f489fb521f2e03287bd5515b3502481089Enrico Granata stl_summary_flags.SetDontShowChildren(false);stl_summary_flags.SetSkipPointers(true); 571dba1de8d585f27601162f674d30ab71d9c83ccdeEnrico Granata gnu_category_sp->GetRegexSummaryNavigator()->Add(RegularExpressionSP(new RegularExpression("^std::vector<.+>(( )?&)?$")), 572dba1de8d585f27601162f674d30ab71d9c83ccdeEnrico Granata TypeSummaryImplSP(new StringSummaryFormat(stl_summary_flags, 573dba1de8d585f27601162f674d30ab71d9c83ccdeEnrico Granata "size=${svar%#}"))); 574dba1de8d585f27601162f674d30ab71d9c83ccdeEnrico Granata gnu_category_sp->GetRegexSummaryNavigator()->Add(RegularExpressionSP(new RegularExpression("^std::map<.+> >(( )?&)?$")), 575dba1de8d585f27601162f674d30ab71d9c83ccdeEnrico Granata TypeSummaryImplSP(new StringSummaryFormat(stl_summary_flags, 576dba1de8d585f27601162f674d30ab71d9c83ccdeEnrico Granata "size=${svar%#}"))); 577dba1de8d585f27601162f674d30ab71d9c83ccdeEnrico Granata gnu_category_sp->GetRegexSummaryNavigator()->Add(RegularExpressionSP(new RegularExpression("^std::list<.+>(( )?&)?$")), 57886fcb16c848b7503b2d082158886359ef76f1a84Enrico Granata TypeSummaryImplSP(new StringSummaryFormat(stl_summary_flags, 57986fcb16c848b7503b2d082158886359ef76f1a84Enrico Granata "size=${svar%#}"))); 58032d7ee3d2969211e104a27fcfcd636f249b26559Enrico Granata 58132d7ee3d2969211e104a27fcfcd636f249b26559Enrico Granata AddCXXSynthetic(gnu_category_sp, lldb_private::formatters::LibStdcppVectorIteratorSyntheticFrontEndCreator, "std::vector iterator synthetic children", ConstString("^__gnu_cxx::__normal_iterator<.+>$"), stl_synth_flags, true); 58232d7ee3d2969211e104a27fcfcd636f249b26559Enrico Granata 58332d7ee3d2969211e104a27fcfcd636f249b26559Enrico Granata AddCXXSynthetic(gnu_category_sp, lldb_private::formatters::LibstdcppMapIteratorSyntheticFrontEndCreator, "std::map iterator synthetic children", ConstString("^std::_Rb_tree_iterator<.+>$"), stl_synth_flags, true); 584689696c19cbf0fa8a09e2461f0aaa37409782e3bEnrico Granata 585689696c19cbf0fa8a09e2461f0aaa37409782e3bEnrico Granata gnu_category_sp->GetSummaryNavigator()->Add(ConstString("std::vector<std::allocator<bool> >"), 586689696c19cbf0fa8a09e2461f0aaa37409782e3bEnrico Granata TypeSummaryImplSP(new StringSummaryFormat(stl_summary_flags, "size=${svar%#}"))); 587689696c19cbf0fa8a09e2461f0aaa37409782e3bEnrico Granata 588689696c19cbf0fa8a09e2461f0aaa37409782e3bEnrico Granata gnu_category_sp->GetSyntheticNavigator()->Add(ConstString("std::vector<std::allocator<bool> >"), 589689696c19cbf0fa8a09e2461f0aaa37409782e3bEnrico Granata SyntheticChildrenSP(new CXXSyntheticChildren(stl_synth_flags,"libc++ std::vector<bool> synthetic children",lldb_private::formatters::LibstdcppVectorBoolSyntheticFrontEndCreator))); 590689696c19cbf0fa8a09e2461f0aaa37409782e3bEnrico Granata 591d760907c1d42726fa0c8c48efa28385ed339bb94Enrico Granata#endif 592d760907c1d42726fa0c8c48efa28385ed339bb94Enrico Granata} 593d760907c1d42726fa0c8c48efa28385ed339bb94Enrico Granata 594d760907c1d42726fa0c8c48efa28385ed339bb94Enrico Granatavoid 59566205ce5381ab6db1f9bff83c483a4dc5854afc7Enrico GranataFormatManager::LoadLibcxxFormatters() 59666205ce5381ab6db1f9bff83c483a4dc5854afc7Enrico Granata{ 59766205ce5381ab6db1f9bff83c483a4dc5854afc7Enrico Granata TypeSummaryImpl::Flags stl_summary_flags; 59866205ce5381ab6db1f9bff83c483a4dc5854afc7Enrico Granata stl_summary_flags.SetCascades(true) 59966205ce5381ab6db1f9bff83c483a4dc5854afc7Enrico Granata .SetSkipPointers(false) 60066205ce5381ab6db1f9bff83c483a4dc5854afc7Enrico Granata .SetSkipReferences(false) 60166205ce5381ab6db1f9bff83c483a4dc5854afc7Enrico Granata .SetDontShowChildren(true) 60266205ce5381ab6db1f9bff83c483a4dc5854afc7Enrico Granata .SetDontShowValue(true) 60366205ce5381ab6db1f9bff83c483a4dc5854afc7Enrico Granata .SetShowMembersOneLiner(false) 60466205ce5381ab6db1f9bff83c483a4dc5854afc7Enrico Granata .SetHideItemNames(false); 60566205ce5381ab6db1f9bff83c483a4dc5854afc7Enrico Granata 6065ae31e2857ff6da596533baa11c3f82f340fefecJason Molenda#ifndef LLDB_DISABLE_PYTHON 607b6985793ce97364e6fa86643b942326b218dcb3dEnrico Granata //std::string code(" lldb.formatters.cpp.libcxx.stdstring_SummaryProvider(valobj,internal_dict)"); 608b6985793ce97364e6fa86643b942326b218dcb3dEnrico Granata //lldb::TypeSummaryImplSP std_string_summary_sp(new ScriptSummaryFormat(stl_summary_flags, "lldb.formatters.cpp.libcxx.stdstring_SummaryProvider",code.c_str())); 60966205ce5381ab6db1f9bff83c483a4dc5854afc7Enrico Granata 610b6985793ce97364e6fa86643b942326b218dcb3dEnrico Granata lldb::TypeSummaryImplSP std_string_summary_sp(new CXXFunctionSummaryFormat(stl_summary_flags, lldb_private::formatters::LibcxxStringSummaryProvider, "std::string summary provider")); 611b6985793ce97364e6fa86643b942326b218dcb3dEnrico Granata lldb::TypeSummaryImplSP std_wstring_summary_sp(new CXXFunctionSummaryFormat(stl_summary_flags, lldb_private::formatters::LibcxxWStringSummaryProvider, "std::wstring summary provider")); 612b6985793ce97364e6fa86643b942326b218dcb3dEnrico Granata 61366205ce5381ab6db1f9bff83c483a4dc5854afc7Enrico Granata TypeCategoryImpl::SharedPointer libcxx_category_sp = GetCategory(m_libcxx_category_name); 61466205ce5381ab6db1f9bff83c483a4dc5854afc7Enrico Granata 61566205ce5381ab6db1f9bff83c483a4dc5854afc7Enrico Granata libcxx_category_sp->GetSummaryNavigator()->Add(ConstString("std::__1::string"), 61666205ce5381ab6db1f9bff83c483a4dc5854afc7Enrico Granata std_string_summary_sp); 617dc0a38c5a727cae5362b218a3180d0f4265a619dGreg Clayton libcxx_category_sp->GetSummaryNavigator()->Add(ConstString("std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >"), 61866205ce5381ab6db1f9bff83c483a4dc5854afc7Enrico Granata std_string_summary_sp); 6195ae31e2857ff6da596533baa11c3f82f340fefecJason Molenda 620b6985793ce97364e6fa86643b942326b218dcb3dEnrico Granata libcxx_category_sp->GetSummaryNavigator()->Add(ConstString("std::__1::wstring"), 621b6985793ce97364e6fa86643b942326b218dcb3dEnrico Granata std_wstring_summary_sp); 622b6985793ce97364e6fa86643b942326b218dcb3dEnrico Granata libcxx_category_sp->GetSummaryNavigator()->Add(ConstString("std::__1::basic_string<wchar_t, std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >"), 623b6985793ce97364e6fa86643b942326b218dcb3dEnrico Granata std_wstring_summary_sp); 624b6985793ce97364e6fa86643b942326b218dcb3dEnrico Granata 62566205ce5381ab6db1f9bff83c483a4dc5854afc7Enrico Granata SyntheticChildren::Flags stl_synth_flags; 62666205ce5381ab6db1f9bff83c483a4dc5854afc7Enrico Granata stl_synth_flags.SetCascades(true).SetSkipPointers(false).SetSkipReferences(false); 62766205ce5381ab6db1f9bff83c483a4dc5854afc7Enrico Granata 628cc5d27417b9f958d596a438290a9adb17674b487Enrico Granata AddCXXSynthetic(libcxx_category_sp, lldb_private::formatters::LibcxxStdVectorSyntheticFrontEndCreator, "libc++ std::vector synthetic children", ConstString("^std::__1::vector<.+>(( )?&)?$"), stl_synth_flags, true); 629cc5d27417b9f958d596a438290a9adb17674b487Enrico Granata AddCXXSynthetic(libcxx_category_sp, lldb_private::formatters::LibcxxStdListSyntheticFrontEndCreator, "libc++ std::list synthetic children", ConstString("^std::__1::list<.+>(( )?&)?$"), stl_synth_flags, true); 630cc5d27417b9f958d596a438290a9adb17674b487Enrico Granata AddCXXSynthetic(libcxx_category_sp, lldb_private::formatters::LibcxxStdMapSyntheticFrontEndCreator, "libc++ std::map synthetic children", ConstString("^std::__1::map<.+> >(( )?&)?$"), stl_synth_flags, true); 6318f0f4751e12a4f8d2b6bf359ee4e0853b0d6cd23Enrico Granata AddCXXSynthetic(libcxx_category_sp, lldb_private::formatters::LibcxxVectorBoolSyntheticFrontEndCreator, "libc++ std::vector<bool> synthetic children", ConstString("std::__1::vector<std::__1::allocator<bool> >"), stl_synth_flags); 6323990c278c5f4f6ce1373ee3e6d5b984883cf4318Enrico Granata AddCXXSynthetic(libcxx_category_sp, lldb_private::formatters::LibcxxStdMapSyntheticFrontEndCreator, "libc++ std::set synthetic children", ConstString("^std::__1::set<.+> >(( )?&)?$"), stl_synth_flags, true); 6333990c278c5f4f6ce1373ee3e6d5b984883cf4318Enrico Granata AddCXXSynthetic(libcxx_category_sp, lldb_private::formatters::LibcxxStdMapSyntheticFrontEndCreator, "libc++ std::multiset synthetic children", ConstString("^std::__1::multiset<.+> >(( )?&)?$"), stl_synth_flags, true); 6343990c278c5f4f6ce1373ee3e6d5b984883cf4318Enrico Granata AddCXXSynthetic(libcxx_category_sp, lldb_private::formatters::LibcxxStdMapSyntheticFrontEndCreator, "libc++ std::multimap synthetic children", ConstString("^std::__1::multimap<.+> >(( )?&)?$"), stl_synth_flags, true); 635cc5d27417b9f958d596a438290a9adb17674b487Enrico Granata 6365b8bfab161eb889fde856b8ed9ee225fc94be2d2Enrico Granata libcxx_category_sp->GetRegexSyntheticNavigator()->Add(RegularExpressionSP(new RegularExpression("^(std::__1::)deque<.+>(( )?&)?$")), 637f509c5ec066599a3399fced39ea36996184939e8Enrico Granata SyntheticChildrenSP(new ScriptedSyntheticChildren(stl_synth_flags, 6385b8bfab161eb889fde856b8ed9ee225fc94be2d2Enrico Granata "lldb.formatters.cpp.libcxx.stddeque_SynthProvider"))); 639cc5d27417b9f958d596a438290a9adb17674b487Enrico Granata 640cc5d27417b9f958d596a438290a9adb17674b487Enrico Granata AddCXXSynthetic(libcxx_category_sp, lldb_private::formatters::LibcxxSharedPtrSyntheticFrontEndCreator, "shared_ptr synthetic children", ConstString("^(std::__1::)shared_ptr<.+>(( )?&)?$"), stl_synth_flags, true); 641cc5d27417b9f958d596a438290a9adb17674b487Enrico Granata AddCXXSynthetic(libcxx_category_sp, lldb_private::formatters::LibcxxSharedPtrSyntheticFrontEndCreator, "weak_ptr synthetic children", ConstString("^(std::__1::)weak_ptr<.+>(( )?&)?$"), stl_synth_flags, true); 6425b8bfab161eb889fde856b8ed9ee225fc94be2d2Enrico Granata 6438f0f4751e12a4f8d2b6bf359ee4e0853b0d6cd23Enrico Granata stl_summary_flags.SetDontShowChildren(false);stl_summary_flags.SetSkipPointers(false); 6448f0f4751e12a4f8d2b6bf359ee4e0853b0d6cd23Enrico Granata 6458f0f4751e12a4f8d2b6bf359ee4e0853b0d6cd23Enrico Granata AddCXXSummary(libcxx_category_sp, lldb_private::formatters::LibcxxContainerSummaryProvider, "libc++ std::vector summary provider", ConstString("^std::__1::vector<.+>(( )?&)?$"), stl_summary_flags, true); 6468f0f4751e12a4f8d2b6bf359ee4e0853b0d6cd23Enrico Granata AddCXXSummary(libcxx_category_sp, lldb_private::formatters::LibcxxContainerSummaryProvider, "libc++ std::list summary provider", ConstString("^std::__1::list<.+>(( )?&)?$"), stl_summary_flags, true); 6478f0f4751e12a4f8d2b6bf359ee4e0853b0d6cd23Enrico Granata AddCXXSummary(libcxx_category_sp, lldb_private::formatters::LibcxxContainerSummaryProvider, "libc++ std::map summary provider", ConstString("^std::__1::map<.+>(( )?&)?$"), stl_summary_flags, true); 6488f0f4751e12a4f8d2b6bf359ee4e0853b0d6cd23Enrico Granata AddCXXSummary(libcxx_category_sp, lldb_private::formatters::LibcxxContainerSummaryProvider, "libc++ std::deque summary provider", ConstString("^std::__1::deque<.+>(( )?&)?$"), stl_summary_flags, true); 6498f0f4751e12a4f8d2b6bf359ee4e0853b0d6cd23Enrico Granata AddCXXSummary(libcxx_category_sp, lldb_private::formatters::LibcxxContainerSummaryProvider, "libc++ std::vector<bool> summary provider", ConstString("std::__1::vector<std::__1::allocator<bool> >"), stl_summary_flags); 6503990c278c5f4f6ce1373ee3e6d5b984883cf4318Enrico Granata AddCXXSummary(libcxx_category_sp, lldb_private::formatters::LibcxxContainerSummaryProvider, "libc++ std::set summary provider", ConstString("^std::__1::set<.+>(( )?&)?$"), stl_summary_flags, true); 6513990c278c5f4f6ce1373ee3e6d5b984883cf4318Enrico Granata AddCXXSummary(libcxx_category_sp, lldb_private::formatters::LibcxxContainerSummaryProvider, "libc++ std::multiset summary provider", ConstString("^std::__1::multiset<.+>(( )?&)?$"), stl_summary_flags, true); 6523990c278c5f4f6ce1373ee3e6d5b984883cf4318Enrico Granata AddCXXSummary(libcxx_category_sp, lldb_private::formatters::LibcxxContainerSummaryProvider, "libc++ std::multimap summary provider", ConstString("^std::__1::multimap<.+>(( )?&)?$"), stl_summary_flags, true); 6538f0f4751e12a4f8d2b6bf359ee4e0853b0d6cd23Enrico Granata 6548f0f4751e12a4f8d2b6bf359ee4e0853b0d6cd23Enrico Granata stl_summary_flags.SetSkipPointers(true); 6558f0f4751e12a4f8d2b6bf359ee4e0853b0d6cd23Enrico Granata AddStringSummary(libcxx_category_sp, "{${var.__ptr_%S}} (strong=${var.count} weak=${var.weak_count})}", ConstString("^std::__1::shared_ptr<.+>(( )?&)?$"), stl_summary_flags, true); 6568f0f4751e12a4f8d2b6bf359ee4e0853b0d6cd23Enrico Granata AddStringSummary(libcxx_category_sp, "{${var.__ptr_%S}} (strong=${var.count} weak=${var.weak_count})}", ConstString("^std::__1::weak_ptr<.+>(( )?&)?$"), stl_summary_flags, true); 65732d7ee3d2969211e104a27fcfcd636f249b26559Enrico Granata 65832d7ee3d2969211e104a27fcfcd636f249b26559Enrico Granata AddCXXSynthetic(libcxx_category_sp, lldb_private::formatters::LibCxxVectorIteratorSyntheticFrontEndCreator, "std::vector iterator synthetic children", ConstString("^std::__1::__wrap_iter<.+>$"), stl_synth_flags, true); 65932d7ee3d2969211e104a27fcfcd636f249b26559Enrico Granata 66032d7ee3d2969211e104a27fcfcd636f249b26559Enrico Granata AddCXXSynthetic(libcxx_category_sp, lldb_private::formatters::LibCxxMapIteratorSyntheticFrontEndCreator, "std::map iterator synthetic children", ConstString("^std::__1::__map_iterator<.+>$"), stl_synth_flags, true); 66107bef69b1725430a383ee9babbf525145bc90b25Enrico Granata 66266205ce5381ab6db1f9bff83c483a4dc5854afc7Enrico Granata#endif 66366205ce5381ab6db1f9bff83c483a4dc5854afc7Enrico Granata} 66466205ce5381ab6db1f9bff83c483a4dc5854afc7Enrico Granata 66566205ce5381ab6db1f9bff83c483a4dc5854afc7Enrico Granatavoid 666d760907c1d42726fa0c8c48efa28385ed339bb94Enrico GranataFormatManager::LoadSystemFormatters() 667d760907c1d42726fa0c8c48efa28385ed339bb94Enrico Granata{ 668f5545f966367811c36e2a3db2d82b1398b58c2c4Enrico Granata 669f5545f966367811c36e2a3db2d82b1398b58c2c4Enrico Granata TypeSummaryImpl::Flags string_flags; 670b7031126eee2dd7ecbce4567ece0601b680fb582Enrico Granata string_flags.SetCascades(true) 671f5545f966367811c36e2a3db2d82b1398b58c2c4Enrico Granata .SetSkipPointers(true) 672f5545f966367811c36e2a3db2d82b1398b58c2c4Enrico Granata .SetSkipReferences(false) 673f5545f966367811c36e2a3db2d82b1398b58c2c4Enrico Granata .SetDontShowChildren(true) 674f5545f966367811c36e2a3db2d82b1398b58c2c4Enrico Granata .SetDontShowValue(false) 675f5545f966367811c36e2a3db2d82b1398b58c2c4Enrico Granata .SetShowMembersOneLiner(false) 676f5545f966367811c36e2a3db2d82b1398b58c2c4Enrico Granata .SetHideItemNames(false); 677f5545f966367811c36e2a3db2d82b1398b58c2c4Enrico Granata 678f5545f966367811c36e2a3db2d82b1398b58c2c4Enrico Granata lldb::TypeSummaryImplSP string_format(new StringSummaryFormat(string_flags, "${var%s}")); 679d760907c1d42726fa0c8c48efa28385ed339bb94Enrico Granata 680d760907c1d42726fa0c8c48efa28385ed339bb94Enrico Granata 681d760907c1d42726fa0c8c48efa28385ed339bb94Enrico Granata lldb::TypeSummaryImplSP string_array_format(new StringSummaryFormat(TypeSummaryImpl::Flags().SetCascades(false) 682d760907c1d42726fa0c8c48efa28385ed339bb94Enrico Granata .SetSkipPointers(true) 683d760907c1d42726fa0c8c48efa28385ed339bb94Enrico Granata .SetSkipReferences(false) 6841ce700057562ef0a71724050f1d1675f29f646b6Enrico Granata .SetDontShowChildren(true) 685d760907c1d42726fa0c8c48efa28385ed339bb94Enrico Granata .SetDontShowValue(true) 686d760907c1d42726fa0c8c48efa28385ed339bb94Enrico Granata .SetShowMembersOneLiner(false) 687d760907c1d42726fa0c8c48efa28385ed339bb94Enrico Granata .SetHideItemNames(false), 688d760907c1d42726fa0c8c48efa28385ed339bb94Enrico Granata "${var%s}")); 689d760907c1d42726fa0c8c48efa28385ed339bb94Enrico Granata 690d760907c1d42726fa0c8c48efa28385ed339bb94Enrico Granata lldb::RegularExpressionSP any_size_char_arr(new RegularExpression("char \\[[0-9]+\\]")); 691d760907c1d42726fa0c8c48efa28385ed339bb94Enrico Granata 692d760907c1d42726fa0c8c48efa28385ed339bb94Enrico Granata TypeCategoryImpl::SharedPointer sys_category_sp = GetCategory(m_system_category_name); 693d760907c1d42726fa0c8c48efa28385ed339bb94Enrico Granata 694d760907c1d42726fa0c8c48efa28385ed339bb94Enrico Granata sys_category_sp->GetSummaryNavigator()->Add(ConstString("char *"), string_format); 6950c9166c1234dbe6906cd9e4df3132269e35d4b8fEnrico Granata sys_category_sp->GetSummaryNavigator()->Add(ConstString("unsigned char *"), string_format); 696d760907c1d42726fa0c8c48efa28385ed339bb94Enrico Granata sys_category_sp->GetRegexSummaryNavigator()->Add(any_size_char_arr, string_array_format); 6975cee84b4b542c3a48abd8c2ea1aeab92b773ec86Enrico Granata 6985cee84b4b542c3a48abd8c2ea1aeab92b773ec86Enrico Granata lldb::TypeSummaryImplSP ostype_summary(new StringSummaryFormat(TypeSummaryImpl::Flags().SetCascades(false) 6995cee84b4b542c3a48abd8c2ea1aeab92b773ec86Enrico Granata .SetSkipPointers(true) 7005cee84b4b542c3a48abd8c2ea1aeab92b773ec86Enrico Granata .SetSkipReferences(true) 7015cee84b4b542c3a48abd8c2ea1aeab92b773ec86Enrico Granata .SetDontShowChildren(true) 7025cee84b4b542c3a48abd8c2ea1aeab92b773ec86Enrico Granata .SetDontShowValue(false) 7035cee84b4b542c3a48abd8c2ea1aeab92b773ec86Enrico Granata .SetShowMembersOneLiner(false) 7045cee84b4b542c3a48abd8c2ea1aeab92b773ec86Enrico Granata .SetHideItemNames(false), 7055cee84b4b542c3a48abd8c2ea1aeab92b773ec86Enrico Granata "${var%O}")); 7065cee84b4b542c3a48abd8c2ea1aeab92b773ec86Enrico Granata 7075cee84b4b542c3a48abd8c2ea1aeab92b773ec86Enrico Granata sys_category_sp->GetSummaryNavigator()->Add(ConstString("OSType"), ostype_summary); 7088f84cfb6f46256ae98a40fd217b206f48b7345c8Enrico Granata 7091b84e1ba902972616a4cbd714ef4ba6c9984f6a2Jason Molenda#ifndef LLDB_DISABLE_PYTHON 710f5545f966367811c36e2a3db2d82b1398b58c2c4Enrico Granata // FIXME because of a bug in the FormatNavigator we need to add a summary for both X* and const X* (<rdar://problem/12717717>) 711f5545f966367811c36e2a3db2d82b1398b58c2c4Enrico Granata AddCXXSummary(sys_category_sp, lldb_private::formatters::Char16StringSummaryProvider, "char16_t * summary provider", ConstString("char16_t *"), string_flags); 7128f84cfb6f46256ae98a40fd217b206f48b7345c8Enrico Granata 713f5545f966367811c36e2a3db2d82b1398b58c2c4Enrico Granata AddCXXSummary(sys_category_sp, lldb_private::formatters::Char32StringSummaryProvider, "char32_t * summary provider", ConstString("char32_t *"), string_flags); 71406d58b0c68d98bfef948861e722789d7c7b1172cEnrico Granata 71506d58b0c68d98bfef948861e722789d7c7b1172cEnrico Granata AddCXXSummary(sys_category_sp, lldb_private::formatters::WCharStringSummaryProvider, "wchar_t * summary provider", ConstString("wchar_t *"), string_flags); 716cd8cd61e7280b9c050a85ba29fa4d3b20737df3aEnrico Granata 717cd8cd61e7280b9c050a85ba29fa4d3b20737df3aEnrico Granata AddCXXSummary(sys_category_sp, lldb_private::formatters::Char16StringSummaryProvider, "unichar * summary provider", ConstString("unichar *"), string_flags); 718cd8cd61e7280b9c050a85ba29fa4d3b20737df3aEnrico Granata 719cd8cd61e7280b9c050a85ba29fa4d3b20737df3aEnrico Granata TypeSummaryImpl::Flags widechar_flags; 720cd8cd61e7280b9c050a85ba29fa4d3b20737df3aEnrico Granata widechar_flags.SetDontShowValue(true) 721cd8cd61e7280b9c050a85ba29fa4d3b20737df3aEnrico Granata .SetSkipPointers(true) 722cd8cd61e7280b9c050a85ba29fa4d3b20737df3aEnrico Granata .SetSkipReferences(false) 723cd8cd61e7280b9c050a85ba29fa4d3b20737df3aEnrico Granata .SetCascades(true) 724cd8cd61e7280b9c050a85ba29fa4d3b20737df3aEnrico Granata .SetDontShowChildren(true) 725cd8cd61e7280b9c050a85ba29fa4d3b20737df3aEnrico Granata .SetHideItemNames(true) 726cd8cd61e7280b9c050a85ba29fa4d3b20737df3aEnrico Granata .SetShowMembersOneLiner(false); 727cd8cd61e7280b9c050a85ba29fa4d3b20737df3aEnrico Granata 728cd8cd61e7280b9c050a85ba29fa4d3b20737df3aEnrico Granata AddCXXSummary(sys_category_sp, lldb_private::formatters::Char16SummaryProvider, "char16_t summary provider", ConstString("char16_t"), widechar_flags); 729cd8cd61e7280b9c050a85ba29fa4d3b20737df3aEnrico Granata AddCXXSummary(sys_category_sp, lldb_private::formatters::Char32SummaryProvider, "char32_t summary provider", ConstString("char32_t"), widechar_flags); 730cd8cd61e7280b9c050a85ba29fa4d3b20737df3aEnrico Granata AddCXXSummary(sys_category_sp, lldb_private::formatters::WCharSummaryProvider, "wchar_t summary provider", ConstString("wchar_t"), widechar_flags); 731cd8cd61e7280b9c050a85ba29fa4d3b20737df3aEnrico Granata 732cd8cd61e7280b9c050a85ba29fa4d3b20737df3aEnrico Granata AddCXXSummary(sys_category_sp, lldb_private::formatters::Char16SummaryProvider, "unichar summary provider", ConstString("unichar"), widechar_flags); 733cd8cd61e7280b9c050a85ba29fa4d3b20737df3aEnrico Granata 7341b84e1ba902972616a4cbd714ef4ba6c9984f6a2Jason Molenda#endif 7358f84cfb6f46256ae98a40fd217b206f48b7345c8Enrico Granata} 736f91e78f58692785db4daecf8461481b95827dcf2Enrico Granata 737d760907c1d42726fa0c8c48efa28385ed339bb94Enrico Granatavoid 738d760907c1d42726fa0c8c48efa28385ed339bb94Enrico GranataFormatManager::LoadObjCFormatters() 739d760907c1d42726fa0c8c48efa28385ed339bb94Enrico Granata{ 740d760907c1d42726fa0c8c48efa28385ed339bb94Enrico Granata TypeSummaryImpl::Flags objc_flags; 741d760907c1d42726fa0c8c48efa28385ed339bb94Enrico Granata objc_flags.SetCascades(false) 7424ebd5cee6cad673b18e010f79aa8644dcf48e526Enrico Granata .SetSkipPointers(true) 7434ebd5cee6cad673b18e010f79aa8644dcf48e526Enrico Granata .SetSkipReferences(true) 744d760907c1d42726fa0c8c48efa28385ed339bb94Enrico Granata .SetDontShowChildren(true) 745d760907c1d42726fa0c8c48efa28385ed339bb94Enrico Granata .SetDontShowValue(true) 746d760907c1d42726fa0c8c48efa28385ed339bb94Enrico Granata .SetShowMembersOneLiner(false) 747d760907c1d42726fa0c8c48efa28385ed339bb94Enrico Granata .SetHideItemNames(false); 74812ea8fbb214ffb3bb6b6c656fff69d24fa328c24Enrico Granata 74912ea8fbb214ffb3bb6b6c656fff69d24fa328c24Enrico Granata TypeCategoryImpl::SharedPointer objc_category_sp = GetCategory(m_objc_category_name); 750d760907c1d42726fa0c8c48efa28385ed339bb94Enrico Granata 751db05491da80820047dc218542c88ba0d9f08fc71Enrico Granata lldb::TypeSummaryImplSP ObjC_BOOL_summary(new CXXFunctionSummaryFormat(objc_flags, lldb_private::formatters::ObjCBOOLSummaryProvider,"")); 752b8dc733bd264edb688129dcc3103fb5ba4c9f060Enrico Granata objc_category_sp->GetSummaryNavigator()->Add(ConstString("BOOL"), 753b8dc733bd264edb688129dcc3103fb5ba4c9f060Enrico Granata ObjC_BOOL_summary); 7544ebd5cee6cad673b18e010f79aa8644dcf48e526Enrico Granata objc_category_sp->GetSummaryNavigator()->Add(ConstString("BOOL &"), 755db05491da80820047dc218542c88ba0d9f08fc71Enrico Granata ObjC_BOOL_summary); 7564ebd5cee6cad673b18e010f79aa8644dcf48e526Enrico Granata objc_category_sp->GetSummaryNavigator()->Add(ConstString("BOOL *"), 757db05491da80820047dc218542c88ba0d9f08fc71Enrico Granata ObjC_BOOL_summary); 758db05491da80820047dc218542c88ba0d9f08fc71Enrico Granata 759da5308992b04e473eb218b9bd234d0b81f5242c4Jason Molenda#ifndef LLDB_DISABLE_PYTHON 76086fcb16c848b7503b2d082158886359ef76f1a84Enrico Granata // we need to skip pointers here since we are special casing a SEL* when retrieving its value 76186fcb16c848b7503b2d082158886359ef76f1a84Enrico Granata objc_flags.SetSkipPointers(true); 762f5545f966367811c36e2a3db2d82b1398b58c2c4Enrico Granata AddCXXSummary(objc_category_sp, lldb_private::formatters::ObjCSELSummaryProvider<false>, "SEL summary provider", ConstString("SEL"), objc_flags); 763f5545f966367811c36e2a3db2d82b1398b58c2c4Enrico Granata AddCXXSummary(objc_category_sp, lldb_private::formatters::ObjCSELSummaryProvider<false>, "SEL summary provider", ConstString("struct objc_selector"), objc_flags); 764f5545f966367811c36e2a3db2d82b1398b58c2c4Enrico Granata AddCXXSummary(objc_category_sp, lldb_private::formatters::ObjCSELSummaryProvider<false>, "SEL summary provider", ConstString("objc_selector"), objc_flags); 765f5545f966367811c36e2a3db2d82b1398b58c2c4Enrico Granata AddCXXSummary(objc_category_sp, lldb_private::formatters::ObjCSELSummaryProvider<true>, "SEL summary provider", ConstString("objc_selector *"), objc_flags); 7661f9df7804f59193fdfbba3d73bb81f99c689f486Enrico Granata AddCXXSummary(objc_category_sp, lldb_private::formatters::ObjCSELSummaryProvider<true>, "SEL summary provider", ConstString("SEL *"), objc_flags); 767db05491da80820047dc218542c88ba0d9f08fc71Enrico Granata 768280b30f0315211c54ce1c34366b586e9700629f4Enrico Granata AddCXXSummary(objc_category_sp, lldb_private::formatters::ObjCClassSummaryProvider, "Class summary provider", ConstString("Class"), objc_flags); 76939ebb982b3f9de4a15744078e9c6ba231187b5dcEnrico Granata 77039ebb982b3f9de4a15744078e9c6ba231187b5dcEnrico Granata SyntheticChildren::Flags class_synth_flags; 77139ebb982b3f9de4a15744078e9c6ba231187b5dcEnrico Granata class_synth_flags.SetCascades(true).SetSkipPointers(false).SetSkipReferences(false); 77239ebb982b3f9de4a15744078e9c6ba231187b5dcEnrico Granata 77339ebb982b3f9de4a15744078e9c6ba231187b5dcEnrico Granata AddCXXSynthetic(objc_category_sp, lldb_private::formatters::ObjCClassSyntheticFrontEndCreator, "Class synthetic children", ConstString("Class"), class_synth_flags); 77412ea8fbb214ffb3bb6b6c656fff69d24fa328c24Enrico Granata#endif // LLDB_DISABLE_PYTHON 77586fcb16c848b7503b2d082158886359ef76f1a84Enrico Granata 776db05491da80820047dc218542c88ba0d9f08fc71Enrico Granata objc_flags.SetSkipPointers(false); 7774bb4232b60650d39ef66cb600cef8399342b7d16Enrico Granata objc_flags.SetCascades(true); 7784bb4232b60650d39ef66cb600cef8399342b7d16Enrico Granata objc_flags.SetSkipReferences(false); 7794bb4232b60650d39ef66cb600cef8399342b7d16Enrico Granata 7804bb4232b60650d39ef66cb600cef8399342b7d16Enrico Granata AddStringSummary (objc_category_sp, 7814bb4232b60650d39ef66cb600cef8399342b7d16Enrico Granata "${var.__FuncPtr%A}", 7824bb4232b60650d39ef66cb600cef8399342b7d16Enrico Granata ConstString("__block_literal_generic"), 7834bb4232b60650d39ef66cb600cef8399342b7d16Enrico Granata objc_flags); 784db05491da80820047dc218542c88ba0d9f08fc71Enrico Granata 785d760907c1d42726fa0c8c48efa28385ed339bb94Enrico Granata TypeCategoryImpl::SharedPointer corefoundation_category_sp = GetCategory(m_corefoundation_category_name); 786d760907c1d42726fa0c8c48efa28385ed339bb94Enrico Granata 787e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata AddStringSummary(corefoundation_category_sp, 788e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata "${var.years} years, ${var.months} months, ${var.days} days, ${var.hours} hours, ${var.minutes} minutes ${var.seconds} seconds", 789e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata ConstString("CFGregorianUnits"), 790e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata objc_flags); 791e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata AddStringSummary(corefoundation_category_sp, 792e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata "location=${var.location} length=${var.length}", 793e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata ConstString("CFRange"), 794e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata objc_flags); 795e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata AddStringSummary(corefoundation_category_sp, 796e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata "(x=${var.x}, y=${var.y})", 797e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata ConstString("NSPoint"), 798e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata objc_flags); 799e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata AddStringSummary(corefoundation_category_sp, 800e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata "location=${var.location}, length=${var.length}", 801e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata ConstString("NSRange"), 802e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata objc_flags); 803e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata AddStringSummary(corefoundation_category_sp, 804e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata "${var.origin}, ${var.size}", 805e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata ConstString("NSRect"), 806e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata objc_flags); 807e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata AddStringSummary(corefoundation_category_sp, 808e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata "(${var.origin}, ${var.size}), ...", 809e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata ConstString("NSRectArray"), 810e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata objc_flags); 811e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata AddStringSummary(objc_category_sp, 812e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata "(width=${var.width}, height=${var.height})", 813e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata ConstString("NSSize"), 814e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata objc_flags); 815d760907c1d42726fa0c8c48efa28385ed339bb94Enrico Granata 816d760907c1d42726fa0c8c48efa28385ed339bb94Enrico Granata TypeCategoryImpl::SharedPointer coregraphics_category_sp = GetCategory(m_coregraphics_category_name); 817d760907c1d42726fa0c8c48efa28385ed339bb94Enrico Granata 818e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata AddStringSummary(coregraphics_category_sp, 819e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata "(width=${var.width}, height=${var.height})", 820e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata ConstString("CGSize"), 821e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata objc_flags); 822e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata AddStringSummary(coregraphics_category_sp, 823e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata "(x=${var.x}, y=${var.y})", 824e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata ConstString("CGPoint"), 825e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata objc_flags); 826e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata AddStringSummary(coregraphics_category_sp, 827e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata "origin=${var.origin} size=${var.size}", 828e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata ConstString("CGRect"), 829e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata objc_flags); 830d760907c1d42726fa0c8c48efa28385ed339bb94Enrico Granata 831d760907c1d42726fa0c8c48efa28385ed339bb94Enrico Granata TypeCategoryImpl::SharedPointer coreservices_category_sp = GetCategory(m_coreservices_category_name); 832d760907c1d42726fa0c8c48efa28385ed339bb94Enrico Granata 833e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata AddStringSummary(coreservices_category_sp, 834e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata "red=${var.red} green=${var.green} blue=${var.blue}", 835e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata ConstString("RGBColor"), 836e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata objc_flags); 837e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata AddStringSummary(coreservices_category_sp, 838e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata "(t=${var.top}, l=${var.left}, b=${var.bottom}, r=${var.right})", 839e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata ConstString("Rect"), 840e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata objc_flags); 841e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata AddStringSummary(coreservices_category_sp, 842e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata "(v=${var.v}, h=${var.h})", 843e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata ConstString("Point"), 844e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata objc_flags); 845e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata AddStringSummary(coreservices_category_sp, 846e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata "${var.month}/${var.day}/${var.year} ${var.hour} :${var.minute} :${var.second} dayOfWeek:${var.dayOfWeek}", 847e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata ConstString("DateTimeRect *"), 848e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata objc_flags); 849e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata AddStringSummary(coreservices_category_sp, 850e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata "${var.ld.month}/${var.ld.day}/${var.ld.year} ${var.ld.hour} :${var.ld.minute} :${var.ld.second} dayOfWeek:${var.ld.dayOfWeek}", 851e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata ConstString("LongDateRect"), 852e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata objc_flags); 853e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata AddStringSummary(coreservices_category_sp, 854e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata "(x=${var.x}, y=${var.y})", 855e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata ConstString("HIPoint"), 856e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata objc_flags); 857e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata AddStringSummary(coreservices_category_sp, 858e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata "origin=${var.origin} size=${var.size}", 859e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata ConstString("HIRect"), 860e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata objc_flags); 861d760907c1d42726fa0c8c48efa28385ed339bb94Enrico Granata 8628f84cfb6f46256ae98a40fd217b206f48b7345c8Enrico Granata TypeCategoryImpl::SharedPointer appkit_category_sp = GetCategory(m_appkit_category_name); 8638f84cfb6f46256ae98a40fd217b206f48b7345c8Enrico Granata 8648f84cfb6f46256ae98a40fd217b206f48b7345c8Enrico Granata TypeSummaryImpl::Flags appkit_flags; 8658f84cfb6f46256ae98a40fd217b206f48b7345c8Enrico Granata appkit_flags.SetCascades(true) 8668f84cfb6f46256ae98a40fd217b206f48b7345c8Enrico Granata .SetSkipPointers(false) 8678f84cfb6f46256ae98a40fd217b206f48b7345c8Enrico Granata .SetSkipReferences(false) 8688f84cfb6f46256ae98a40fd217b206f48b7345c8Enrico Granata .SetDontShowChildren(true) 8698f84cfb6f46256ae98a40fd217b206f48b7345c8Enrico Granata .SetDontShowValue(false) 8708f84cfb6f46256ae98a40fd217b206f48b7345c8Enrico Granata .SetShowMembersOneLiner(false) 8718f84cfb6f46256ae98a40fd217b206f48b7345c8Enrico Granata .SetHideItemNames(false); 8728f84cfb6f46256ae98a40fd217b206f48b7345c8Enrico Granata 873f91e78f58692785db4daecf8461481b95827dcf2Enrico Granata appkit_flags.SetDontShowChildren(false); 874f91e78f58692785db4daecf8461481b95827dcf2Enrico Granata 8753314d6c8b6c818ebd731ab7130c335cac0eb678dJason Molenda 876f54d1459fa73ee64753a707211cb96cfc3d9dff1Jason Molenda#ifndef LLDB_DISABLE_PYTHON 877f91e78f58692785db4daecf8461481b95827dcf2Enrico Granata AddCXXSummary(appkit_category_sp, lldb_private::formatters::NSArraySummaryProvider, "NSArray summary provider", ConstString("NSArray"), appkit_flags); 878f91e78f58692785db4daecf8461481b95827dcf2Enrico Granata AddCXXSummary(appkit_category_sp, lldb_private::formatters::NSArraySummaryProvider, "NSArray summary provider", ConstString("NSMutableArray"), appkit_flags); 879f91e78f58692785db4daecf8461481b95827dcf2Enrico Granata AddCXXSummary(appkit_category_sp, lldb_private::formatters::NSArraySummaryProvider, "NSArray summary provider", ConstString("__NSArrayI"), appkit_flags); 880f91e78f58692785db4daecf8461481b95827dcf2Enrico Granata AddCXXSummary(appkit_category_sp, lldb_private::formatters::NSArraySummaryProvider, "NSArray summary provider", ConstString("__NSArrayM"), appkit_flags); 881f91e78f58692785db4daecf8461481b95827dcf2Enrico Granata AddCXXSummary(appkit_category_sp, lldb_private::formatters::NSArraySummaryProvider, "NSArray summary provider", ConstString("__NSCFArray"), appkit_flags); 882f91e78f58692785db4daecf8461481b95827dcf2Enrico Granata AddCXXSummary(appkit_category_sp, lldb_private::formatters::NSArraySummaryProvider, "NSArray summary provider", ConstString("CFArrayRef"), appkit_flags); 883f91e78f58692785db4daecf8461481b95827dcf2Enrico Granata AddCXXSummary(appkit_category_sp, lldb_private::formatters::NSArraySummaryProvider, "NSArray summary provider", ConstString("CFMutableArrayRef"), appkit_flags); 884f91e78f58692785db4daecf8461481b95827dcf2Enrico Granata 8853a08fd1ab40ac76a732836ee5b1b5aa23605f669Enrico Granata AddCXXSummary(appkit_category_sp, lldb_private::formatters::NSDictionarySummaryProvider<false>, "NSDictionary summary provider", ConstString("NSDictionary"), appkit_flags); 8863a08fd1ab40ac76a732836ee5b1b5aa23605f669Enrico Granata AddCXXSummary(appkit_category_sp, lldb_private::formatters::NSDictionarySummaryProvider<false>, "NSDictionary summary provider", ConstString("NSMutableDictionary"), appkit_flags); 8873a08fd1ab40ac76a732836ee5b1b5aa23605f669Enrico Granata AddCXXSummary(appkit_category_sp, lldb_private::formatters::NSDictionarySummaryProvider<false>, "NSDictionary summary provider", ConstString("__NSCFDictionary"), appkit_flags); 8883a08fd1ab40ac76a732836ee5b1b5aa23605f669Enrico Granata AddCXXSummary(appkit_category_sp, lldb_private::formatters::NSDictionarySummaryProvider<false>, "NSDictionary summary provider", ConstString("__NSDictionaryI"), appkit_flags); 8893a08fd1ab40ac76a732836ee5b1b5aa23605f669Enrico Granata AddCXXSummary(appkit_category_sp, lldb_private::formatters::NSDictionarySummaryProvider<false>, "NSDictionary summary provider", ConstString("__NSDictionaryM"), appkit_flags); 8903a08fd1ab40ac76a732836ee5b1b5aa23605f669Enrico Granata AddCXXSummary(appkit_category_sp, lldb_private::formatters::NSDictionarySummaryProvider<true>, "NSDictionary summary provider", ConstString("CFDictionaryRef"), appkit_flags); 8913a08fd1ab40ac76a732836ee5b1b5aa23605f669Enrico Granata AddCXXSummary(appkit_category_sp, lldb_private::formatters::NSDictionarySummaryProvider<true>, "NSDictionary summary provider", ConstString("CFMutableDictionaryRef"), appkit_flags); 8923a08fd1ab40ac76a732836ee5b1b5aa23605f669Enrico Granata 893fa3a6706b42bddfece6f5ba96d82042c6494a912Enrico Granata AddCXXSummary(appkit_category_sp, lldb_private::formatters::NSSetSummaryProvider<false>, "NSSet summary", ConstString("NSSet"), appkit_flags); 8945c2cd1f89c48df277a07f73822187317ac4cbae0Enrico Granata AddCXXSummary(appkit_category_sp, lldb_private::formatters::NSSetSummaryProvider<false>, "NSMutableSet summary", ConstString("NSMutableSet"), appkit_flags); 895fa3a6706b42bddfece6f5ba96d82042c6494a912Enrico Granata AddCXXSummary(appkit_category_sp, lldb_private::formatters::NSSetSummaryProvider<true>, "CFSetRef summary", ConstString("CFSetRef"), appkit_flags); 896fa3a6706b42bddfece6f5ba96d82042c6494a912Enrico Granata AddCXXSummary(appkit_category_sp, lldb_private::formatters::NSSetSummaryProvider<true>, "CFMutableSetRef summary", ConstString("CFMutableSetRef"), appkit_flags); 897fa3a6706b42bddfece6f5ba96d82042c6494a912Enrico Granata AddCXXSummary(appkit_category_sp, lldb_private::formatters::NSSetSummaryProvider<false>, "__NSCFSet summary", ConstString("__NSCFSet"), appkit_flags); 898fa3a6706b42bddfece6f5ba96d82042c6494a912Enrico Granata AddCXXSummary(appkit_category_sp, lldb_private::formatters::NSSetSummaryProvider<false>, "__NSSetI summary", ConstString("__NSSetI"), appkit_flags); 899fa3a6706b42bddfece6f5ba96d82042c6494a912Enrico Granata AddCXXSummary(appkit_category_sp, lldb_private::formatters::NSSetSummaryProvider<false>, "__NSSetM summary", ConstString("__NSSetM"), appkit_flags); 900fa3a6706b42bddfece6f5ba96d82042c6494a912Enrico Granata AddCXXSummary(appkit_category_sp, lldb_private::formatters::NSSetSummaryProvider<false>, "NSCountedSet summary", ConstString("NSCountedSet"), appkit_flags); 9015c2cd1f89c48df277a07f73822187317ac4cbae0Enrico Granata AddCXXSummary(appkit_category_sp, lldb_private::formatters::NSSetSummaryProvider<false>, "NSMutableSet summary", ConstString("NSMutableSet"), appkit_flags); 9025c2cd1f89c48df277a07f73822187317ac4cbae0Enrico Granata AddCXXSummary(appkit_category_sp, lldb_private::formatters::NSSetSummaryProvider<false>, "NSOrderedSet summary", ConstString("NSOrderedSet"), appkit_flags); 9035c2cd1f89c48df277a07f73822187317ac4cbae0Enrico Granata AddCXXSummary(appkit_category_sp, lldb_private::formatters::NSSetSummaryProvider<false>, "__NSOrderedSetI summary", ConstString("__NSOrderedSetI"), appkit_flags); 9045c2cd1f89c48df277a07f73822187317ac4cbae0Enrico Granata AddCXXSummary(appkit_category_sp, lldb_private::formatters::NSSetSummaryProvider<false>, "__NSOrderedSetM summary", ConstString("__NSOrderedSetM"), appkit_flags); 9055c2cd1f89c48df277a07f73822187317ac4cbae0Enrico Granata 9063a08fd1ab40ac76a732836ee5b1b5aa23605f669Enrico Granata // AddSummary(appkit_category_sp, "${var.key%@} -> ${var.value%@}", ConstString("$_lldb_typegen_nspair"), appkit_flags); 9073a08fd1ab40ac76a732836ee5b1b5aa23605f669Enrico Granata 908f91e78f58692785db4daecf8461481b95827dcf2Enrico Granata appkit_flags.SetDontShowChildren(true); 909f91e78f58692785db4daecf8461481b95827dcf2Enrico Granata 910f509c5ec066599a3399fced39ea36996184939e8Enrico Granata AddCXXSynthetic(appkit_category_sp, lldb_private::formatters::NSArraySyntheticFrontEndCreator, "NSArray synthetic children", ConstString("__NSArrayM"), ScriptedSyntheticChildren::Flags()); 911f509c5ec066599a3399fced39ea36996184939e8Enrico Granata AddCXXSynthetic(appkit_category_sp, lldb_private::formatters::NSArraySyntheticFrontEndCreator, "NSArray synthetic children", ConstString("__NSArrayI"), ScriptedSyntheticChildren::Flags()); 912f509c5ec066599a3399fced39ea36996184939e8Enrico Granata AddCXXSynthetic(appkit_category_sp, lldb_private::formatters::NSArraySyntheticFrontEndCreator, "NSArray synthetic children", ConstString("NSArray"), ScriptedSyntheticChildren::Flags()); 913f509c5ec066599a3399fced39ea36996184939e8Enrico Granata AddCXXSynthetic(appkit_category_sp, lldb_private::formatters::NSArraySyntheticFrontEndCreator, "NSArray synthetic children", ConstString("NSMutableArray"), ScriptedSyntheticChildren::Flags()); 914f509c5ec066599a3399fced39ea36996184939e8Enrico Granata AddCXXSynthetic(appkit_category_sp, lldb_private::formatters::NSArraySyntheticFrontEndCreator, "NSArray synthetic children", ConstString("__NSCFArray"), ScriptedSyntheticChildren::Flags()); 915fe26a2333298602bac55decfee87bc6d33b79d54Enrico Granata AddCXXSynthetic(appkit_category_sp, lldb_private::formatters::NSArraySyntheticFrontEndCreator, "NSArray synthetic children", ConstString("CFMutableArrayRef"), ScriptedSyntheticChildren::Flags()); 916fe26a2333298602bac55decfee87bc6d33b79d54Enrico Granata AddCXXSynthetic(appkit_category_sp, lldb_private::formatters::NSArraySyntheticFrontEndCreator, "NSArray synthetic children", ConstString("CFArrayRef"), ScriptedSyntheticChildren::Flags()); 917a5c2ce05705f784fd4ada97823af6ff7006fea58Enrico Granata 918f509c5ec066599a3399fced39ea36996184939e8Enrico Granata AddCXXSynthetic(appkit_category_sp, lldb_private::formatters::NSDictionarySyntheticFrontEndCreator, "NSDictionary synthetic children", ConstString("__NSDictionaryM"), ScriptedSyntheticChildren::Flags()); 919f509c5ec066599a3399fced39ea36996184939e8Enrico Granata AddCXXSynthetic(appkit_category_sp, lldb_private::formatters::NSDictionarySyntheticFrontEndCreator, "NSDictionary synthetic children", ConstString("__NSDictionaryI"), ScriptedSyntheticChildren::Flags()); 920f509c5ec066599a3399fced39ea36996184939e8Enrico Granata AddCXXSynthetic(appkit_category_sp, lldb_private::formatters::NSDictionarySyntheticFrontEndCreator, "NSDictionary synthetic children", ConstString("NSDictionary"), ScriptedSyntheticChildren::Flags()); 921f509c5ec066599a3399fced39ea36996184939e8Enrico Granata AddCXXSynthetic(appkit_category_sp, lldb_private::formatters::NSDictionarySyntheticFrontEndCreator, "NSDictionary synthetic children", ConstString("NSMutableDictionary"), ScriptedSyntheticChildren::Flags()); 922f509c5ec066599a3399fced39ea36996184939e8Enrico Granata AddCXXSynthetic(appkit_category_sp, lldb_private::formatters::NSDictionarySyntheticFrontEndCreator, "NSDictionary synthetic children", ConstString("CFDictionaryRef"), ScriptedSyntheticChildren::Flags()); 923f509c5ec066599a3399fced39ea36996184939e8Enrico Granata AddCXXSynthetic(appkit_category_sp, lldb_private::formatters::NSDictionarySyntheticFrontEndCreator, "NSDictionary synthetic children", ConstString("CFMutableDictionaryRef"), ScriptedSyntheticChildren::Flags()); 9243a08fd1ab40ac76a732836ee5b1b5aa23605f669Enrico Granata 925fa3a6706b42bddfece6f5ba96d82042c6494a912Enrico Granata AddCXXSynthetic(appkit_category_sp, lldb_private::formatters::NSSetSyntheticFrontEndCreator, "NSSet synthetic children", ConstString("NSSet"), ScriptedSyntheticChildren::Flags()); 9265c2cd1f89c48df277a07f73822187317ac4cbae0Enrico Granata AddCXXSynthetic(appkit_category_sp, lldb_private::formatters::NSSetSyntheticFrontEndCreator, "__NSSetI synthetic children", ConstString("__NSSetI"), ScriptedSyntheticChildren::Flags()); 9275c2cd1f89c48df277a07f73822187317ac4cbae0Enrico Granata AddCXXSynthetic(appkit_category_sp, lldb_private::formatters::NSSetSyntheticFrontEndCreator, "__NSSetM synthetic children", ConstString("__NSSetM"), ScriptedSyntheticChildren::Flags()); 9285c2cd1f89c48df277a07f73822187317ac4cbae0Enrico Granata AddCXXSynthetic(appkit_category_sp, lldb_private::formatters::NSSetSyntheticFrontEndCreator, "NSMutableSet synthetic children", ConstString("NSMutableSet"), ScriptedSyntheticChildren::Flags()); 9295c2cd1f89c48df277a07f73822187317ac4cbae0Enrico Granata AddCXXSynthetic(appkit_category_sp, lldb_private::formatters::NSSetSyntheticFrontEndCreator, "NSOrderedSet synthetic children", ConstString("NSOrderedSet"), ScriptedSyntheticChildren::Flags()); 9305c2cd1f89c48df277a07f73822187317ac4cbae0Enrico Granata AddCXXSynthetic(appkit_category_sp, lldb_private::formatters::NSSetSyntheticFrontEndCreator, "__NSOrderedSetI synthetic children", ConstString("__NSOrderedSetI"), ScriptedSyntheticChildren::Flags()); 9315c2cd1f89c48df277a07f73822187317ac4cbae0Enrico Granata AddCXXSynthetic(appkit_category_sp, lldb_private::formatters::NSSetSyntheticFrontEndCreator, "__NSOrderedSetM synthetic children", ConstString("__NSOrderedSetM"), ScriptedSyntheticChildren::Flags()); 9325c2cd1f89c48df277a07f73822187317ac4cbae0Enrico Granata 933b70c6ef20cd49bd7b33736e7534db717ae75e96fEnrico Granata AddCXXSummary(appkit_category_sp,lldb_private::formatters::CFBagSummaryProvider, "CFBag summary provider", ConstString("CFBagRef"), appkit_flags); 934b70c6ef20cd49bd7b33736e7534db717ae75e96fEnrico Granata AddCXXSummary(appkit_category_sp,lldb_private::formatters::CFBagSummaryProvider, "CFBag summary provider", ConstString("__CFBag"), appkit_flags); 935b70c6ef20cd49bd7b33736e7534db717ae75e96fEnrico Granata AddCXXSummary(appkit_category_sp,lldb_private::formatters::CFBagSummaryProvider, "CFBag summary provider", ConstString("const struct __CFBag"), appkit_flags); 936b70c6ef20cd49bd7b33736e7534db717ae75e96fEnrico Granata AddCXXSummary(appkit_category_sp,lldb_private::formatters::CFBagSummaryProvider, "CFBag summary provider", ConstString("CFMutableBagRef"), appkit_flags); 937a5c2ce05705f784fd4ada97823af6ff7006fea58Enrico Granata 938dc1df6b2fd7d359753b2bcfcf2decb114f465a1dEnrico Granata AddCXXSummary(appkit_category_sp,lldb_private::formatters::CFBinaryHeapSummaryProvider, "CFBinaryHeap summary provider", ConstString("CFBinaryHeapRef"), appkit_flags); 939dc1df6b2fd7d359753b2bcfcf2decb114f465a1dEnrico Granata AddCXXSummary(appkit_category_sp,lldb_private::formatters::CFBinaryHeapSummaryProvider, "CFBinaryHeap summary provider", ConstString("__CFBinaryHeap"), appkit_flags); 940a5c2ce05705f784fd4ada97823af6ff7006fea58Enrico Granata 941f91e78f58692785db4daecf8461481b95827dcf2Enrico Granata AddCXXSummary(appkit_category_sp, lldb_private::formatters::NSStringSummaryProvider, "NSString summary provider", ConstString("NSString"), appkit_flags); 942f91e78f58692785db4daecf8461481b95827dcf2Enrico Granata AddCXXSummary(appkit_category_sp, lldb_private::formatters::NSStringSummaryProvider, "NSString summary provider", ConstString("CFStringRef"), appkit_flags); 943f91e78f58692785db4daecf8461481b95827dcf2Enrico Granata AddCXXSummary(appkit_category_sp, lldb_private::formatters::NSStringSummaryProvider, "NSString summary provider", ConstString("CFMutableStringRef"), appkit_flags); 944dcffc1a667665936b3dd33a9861a3de9d1d35636Enrico Granata AddCXXSummary(appkit_category_sp, lldb_private::formatters::NSStringSummaryProvider, "NSString summary provider", ConstString("NSMutableString"), appkit_flags); 945f91e78f58692785db4daecf8461481b95827dcf2Enrico Granata AddCXXSummary(appkit_category_sp, lldb_private::formatters::NSStringSummaryProvider, "NSString summary provider", ConstString("__NSCFConstantString"), appkit_flags); 946f91e78f58692785db4daecf8461481b95827dcf2Enrico Granata AddCXXSummary(appkit_category_sp, lldb_private::formatters::NSStringSummaryProvider, "NSString summary provider", ConstString("__NSCFString"), appkit_flags); 947f91e78f58692785db4daecf8461481b95827dcf2Enrico Granata AddCXXSummary(appkit_category_sp, lldb_private::formatters::NSStringSummaryProvider, "NSString summary provider", ConstString("NSCFConstantString"), appkit_flags); 948f91e78f58692785db4daecf8461481b95827dcf2Enrico Granata AddCXXSummary(appkit_category_sp, lldb_private::formatters::NSStringSummaryProvider, "NSString summary provider", ConstString("NSCFString"), appkit_flags); 949f91e78f58692785db4daecf8461481b95827dcf2Enrico Granata AddCXXSummary(appkit_category_sp, lldb_private::formatters::NSStringSummaryProvider, "NSString summary provider", ConstString("NSPathStore2"), appkit_flags); 950ae2ae94bd72daf435204e99a0e03ccc64470a843Enrico Granata 951dcffc1a667665936b3dd33a9861a3de9d1d35636Enrico Granata AddCXXSummary(appkit_category_sp, lldb_private::formatters::NSAttributedStringSummaryProvider, "NSAttributedString summary provider", ConstString("NSAttributedString"), appkit_flags); 952dcffc1a667665936b3dd33a9861a3de9d1d35636Enrico Granata AddCXXSummary(appkit_category_sp, lldb_private::formatters::NSMutableAttributedStringSummaryProvider, "NSMutableAttributedString summary provider", ConstString("NSMutableAttributedString"), appkit_flags); 953dcffc1a667665936b3dd33a9861a3de9d1d35636Enrico Granata AddCXXSummary(appkit_category_sp, lldb_private::formatters::NSMutableAttributedStringSummaryProvider, "NSMutableAttributedString summary provider", ConstString("NSConcreteMutableAttributedString"), appkit_flags); 954dcffc1a667665936b3dd33a9861a3de9d1d35636Enrico Granata 955b70c6ef20cd49bd7b33736e7534db717ae75e96fEnrico Granata AddCXXSummary(appkit_category_sp, lldb_private::formatters::NSBundleSummaryProvider, "NSBundle summary provider", ConstString("NSBundle"), appkit_flags); 95612ea8fbb214ffb3bb6b6c656fff69d24fa328c24Enrico Granata 957f91e78f58692785db4daecf8461481b95827dcf2Enrico Granata AddCXXSummary(appkit_category_sp, lldb_private::formatters::NSDataSummaryProvider<false>, "NSData summary provider", ConstString("NSData"), appkit_flags); 958f91e78f58692785db4daecf8461481b95827dcf2Enrico Granata AddCXXSummary(appkit_category_sp, lldb_private::formatters::NSDataSummaryProvider<false>, "NSData summary provider", ConstString("NSConcreteData"), appkit_flags); 959f91e78f58692785db4daecf8461481b95827dcf2Enrico Granata AddCXXSummary(appkit_category_sp, lldb_private::formatters::NSDataSummaryProvider<false>, "NSData summary provider", ConstString("NSConcreteMutableData"), appkit_flags); 960f91e78f58692785db4daecf8461481b95827dcf2Enrico Granata AddCXXSummary(appkit_category_sp, lldb_private::formatters::NSDataSummaryProvider<false>, "NSData summary provider", ConstString("__NSCFData"), appkit_flags); 961f91e78f58692785db4daecf8461481b95827dcf2Enrico Granata AddCXXSummary(appkit_category_sp, lldb_private::formatters::NSDataSummaryProvider<true>, "NSData summary provider", ConstString("CFDataRef"), appkit_flags); 962f91e78f58692785db4daecf8461481b95827dcf2Enrico Granata AddCXXSummary(appkit_category_sp, lldb_private::formatters::NSDataSummaryProvider<true>, "NSData summary provider", ConstString("CFMutableDataRef"), appkit_flags); 963a5c2ce05705f784fd4ada97823af6ff7006fea58Enrico Granata 964dc1df6b2fd7d359753b2bcfcf2decb114f465a1dEnrico Granata AddCXXSummary(appkit_category_sp, lldb_private::formatters::NSMachPortSummaryProvider, "NSMachPort summary provider", ConstString("NSMachPort"), appkit_flags); 965dc1df6b2fd7d359753b2bcfcf2decb114f465a1dEnrico Granata 966dc1df6b2fd7d359753b2bcfcf2decb114f465a1dEnrico Granata AddCXXSummary(appkit_category_sp, lldb_private::formatters::NSNotificationSummaryProvider, "NSNotification summary provider", ConstString("NSNotification"), appkit_flags); 967dc1df6b2fd7d359753b2bcfcf2decb114f465a1dEnrico Granata AddCXXSummary(appkit_category_sp, lldb_private::formatters::NSNotificationSummaryProvider, "NSNotification summary provider", ConstString("NSConcreteNotification"), appkit_flags); 968a5c2ce05705f784fd4ada97823af6ff7006fea58Enrico Granata 969e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata AddStringSummary(appkit_category_sp, "domain: ${var._domain} - code: ${var._code}", ConstString("NSError"), appkit_flags); 970f509c5ec066599a3399fced39ea36996184939e8Enrico Granata AddStringSummary(appkit_category_sp,"name:${var.name%S} reason:${var.reason%S}",ConstString("NSException"),appkit_flags); 971f509c5ec066599a3399fced39ea36996184939e8Enrico Granata 972f91e78f58692785db4daecf8461481b95827dcf2Enrico Granata AddCXXSummary(appkit_category_sp, lldb_private::formatters::NSNumberSummaryProvider, "NSNumber summary provider", ConstString("NSNumber"), appkit_flags); 973f91e78f58692785db4daecf8461481b95827dcf2Enrico Granata AddCXXSummary(appkit_category_sp, lldb_private::formatters::NSNumberSummaryProvider, "NSNumber summary provider", ConstString("__NSCFBoolean"), appkit_flags); 974f91e78f58692785db4daecf8461481b95827dcf2Enrico Granata AddCXXSummary(appkit_category_sp, lldb_private::formatters::NSNumberSummaryProvider, "NSNumber summary provider", ConstString("__NSCFNumber"), appkit_flags); 975f91e78f58692785db4daecf8461481b95827dcf2Enrico Granata AddCXXSummary(appkit_category_sp, lldb_private::formatters::NSNumberSummaryProvider, "NSNumber summary provider", ConstString("NSCFBoolean"), appkit_flags); 976f91e78f58692785db4daecf8461481b95827dcf2Enrico Granata AddCXXSummary(appkit_category_sp, lldb_private::formatters::NSNumberSummaryProvider, "NSNumber summary provider", ConstString("NSCFNumber"), appkit_flags); 9779abbfba957db139beed19866f61599424ddcd37aEnrico Granata 9789abbfba957db139beed19866f61599424ddcd37aEnrico Granata AddCXXSummary(appkit_category_sp, lldb_private::formatters::RuntimeSpecificDescriptionSummaryProvider, "NSDecimalNumber summary provider", ConstString("NSDecimalNumber"), appkit_flags); 9799abbfba957db139beed19866f61599424ddcd37aEnrico Granata AddCXXSummary(appkit_category_sp, lldb_private::formatters::RuntimeSpecificDescriptionSummaryProvider, "NSHost summary provider", ConstString("NSHost"), appkit_flags); 9809abbfba957db139beed19866f61599424ddcd37aEnrico Granata AddCXXSummary(appkit_category_sp, lldb_private::formatters::RuntimeSpecificDescriptionSummaryProvider, "NSTask summary provider", ConstString("NSTask"), appkit_flags); 9819abbfba957db139beed19866f61599424ddcd37aEnrico Granata AddCXXSummary(appkit_category_sp, lldb_private::formatters::RuntimeSpecificDescriptionSummaryProvider, "NSValue summary provider", ConstString("NSValue"), appkit_flags); 982ea68753ef4b8cca81cf3f5aef7bbf1ebb152a832Enrico Granata 983979c4b526eb31cbed5475ec62ef10fe53cbf8c45Enrico Granata AddCXXSummary(appkit_category_sp, lldb_private::formatters::NSURLSummaryProvider, "NSURL summary provider", ConstString("NSURL"), appkit_flags); 984979c4b526eb31cbed5475ec62ef10fe53cbf8c45Enrico Granata AddCXXSummary(appkit_category_sp, lldb_private::formatters::NSURLSummaryProvider, "NSURL summary provider", ConstString("CFURLRef"), appkit_flags); 985a5c2ce05705f784fd4ada97823af6ff7006fea58Enrico Granata 986cba09f60618744e2155bc97c9049fa9c797698adEnrico Granata AddCXXSummary(appkit_category_sp, lldb_private::formatters::NSDateSummaryProvider, "NSDate summary provider", ConstString("NSDate"), appkit_flags); 987cba09f60618744e2155bc97c9049fa9c797698adEnrico Granata AddCXXSummary(appkit_category_sp, lldb_private::formatters::NSDateSummaryProvider, "NSDate summary provider", ConstString("__NSDate"), appkit_flags); 988cba09f60618744e2155bc97c9049fa9c797698adEnrico Granata AddCXXSummary(appkit_category_sp, lldb_private::formatters::NSDateSummaryProvider, "NSDate summary provider", ConstString("__NSTaggedDate"), appkit_flags); 989cba09f60618744e2155bc97c9049fa9c797698adEnrico Granata AddCXXSummary(appkit_category_sp, lldb_private::formatters::NSDateSummaryProvider, "NSDate summary provider", ConstString("NSCalendarDate"), appkit_flags); 990a5c2ce05705f784fd4ada97823af6ff7006fea58Enrico Granata 9915782daebac56f3d5b8effdc4e6db7de93630b3c5Enrico Granata AddCXXSummary(appkit_category_sp, lldb_private::formatters::NSTimeZoneSummaryProvider, "NSTimeZone summary provider", ConstString("NSTimeZone"), appkit_flags); 9925782daebac56f3d5b8effdc4e6db7de93630b3c5Enrico Granata AddCXXSummary(appkit_category_sp, lldb_private::formatters::NSTimeZoneSummaryProvider, "NSTimeZone summary provider", ConstString("CFTimeZoneRef"), appkit_flags); 9935782daebac56f3d5b8effdc4e6db7de93630b3c5Enrico Granata AddCXXSummary(appkit_category_sp, lldb_private::formatters::NSTimeZoneSummaryProvider, "NSTimeZone summary provider", ConstString("__NSTimeZone"), appkit_flags); 99486fcb16c848b7503b2d082158886359ef76f1a84Enrico Granata 99583410e5e9e040ea5c6691f933aa9a6c4dcea4d8bEnrico Granata // CFAbsoluteTime is actually a double rather than a pointer to an object 99683410e5e9e040ea5c6691f933aa9a6c4dcea4d8bEnrico Granata // we do not care about the numeric value, since it is probably meaningless to users 99783410e5e9e040ea5c6691f933aa9a6c4dcea4d8bEnrico Granata appkit_flags.SetDontShowValue(true); 998cba09f60618744e2155bc97c9049fa9c797698adEnrico Granata AddCXXSummary(appkit_category_sp, lldb_private::formatters::CFAbsoluteTimeSummaryProvider, "CFAbsoluteTime summary provider", ConstString("CFAbsoluteTime"), appkit_flags); 99983410e5e9e040ea5c6691f933aa9a6c4dcea4d8bEnrico Granata appkit_flags.SetDontShowValue(false); 100083410e5e9e040ea5c6691f933aa9a6c4dcea4d8bEnrico Granata 10013818e6ac2211921db522abedd43746c1de3e82b5Enrico Granata AddCXXSummary(appkit_category_sp, lldb_private::formatters::NSIndexSetSummaryProvider, "NSIndexSet summary provider", ConstString("NSIndexSet"), appkit_flags); 10023818e6ac2211921db522abedd43746c1de3e82b5Enrico Granata AddCXXSummary(appkit_category_sp, lldb_private::formatters::NSIndexSetSummaryProvider, "NSIndexSet summary provider", ConstString("NSMutableIndexSet"), appkit_flags); 100383410e5e9e040ea5c6691f933aa9a6c4dcea4d8bEnrico Granata 1004e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata AddStringSummary(appkit_category_sp, 1005e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata "@\"${var.month%d}/${var.day%d}/${var.year%d} ${var.hour%d}:${var.minute%d}:${var.second}\"", 1006e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata ConstString("CFGregorianDate"), 1007e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata appkit_flags); 100886fcb16c848b7503b2d082158886359ef76f1a84Enrico Granata 10095782daebac56f3d5b8effdc4e6db7de93630b3c5Enrico Granata AddCXXSummary(appkit_category_sp, lldb_private::formatters::CFBitVectorSummaryProvider, "CFBitVector summary provider", ConstString("CFBitVectorRef"), appkit_flags); 10105782daebac56f3d5b8effdc4e6db7de93630b3c5Enrico Granata AddCXXSummary(appkit_category_sp, lldb_private::formatters::CFBitVectorSummaryProvider, "CFBitVector summary provider", ConstString("CFMutableBitVectorRef"), appkit_flags); 10115782daebac56f3d5b8effdc4e6db7de93630b3c5Enrico Granata AddCXXSummary(appkit_category_sp, lldb_private::formatters::CFBitVectorSummaryProvider, "CFBitVector summary provider", ConstString("__CFBitVector"), appkit_flags); 10125782daebac56f3d5b8effdc4e6db7de93630b3c5Enrico Granata AddCXXSummary(appkit_category_sp, lldb_private::formatters::CFBitVectorSummaryProvider, "CFBitVector summary provider", ConstString("__CFMutableBitVector"), appkit_flags); 101312ea8fbb214ffb3bb6b6c656fff69d24fa328c24Enrico Granata#endif // LLDB_DISABLE_PYTHON 101412ea8fbb214ffb3bb6b6c656fff69d24fa328c24Enrico Granata 1015d760907c1d42726fa0c8c48efa28385ed339bb94Enrico Granata TypeCategoryImpl::SharedPointer vectors_category_sp = GetCategory(m_vectortypes_category_name); 1016d760907c1d42726fa0c8c48efa28385ed339bb94Enrico Granata 1017d760907c1d42726fa0c8c48efa28385ed339bb94Enrico Granata TypeSummaryImpl::Flags vector_flags; 1018d760907c1d42726fa0c8c48efa28385ed339bb94Enrico Granata vector_flags.SetCascades(true) 1019d760907c1d42726fa0c8c48efa28385ed339bb94Enrico Granata .SetSkipPointers(true) 1020d760907c1d42726fa0c8c48efa28385ed339bb94Enrico Granata .SetSkipReferences(false) 1021d760907c1d42726fa0c8c48efa28385ed339bb94Enrico Granata .SetDontShowChildren(true) 1022d760907c1d42726fa0c8c48efa28385ed339bb94Enrico Granata .SetDontShowValue(false) 1023d760907c1d42726fa0c8c48efa28385ed339bb94Enrico Granata .SetShowMembersOneLiner(true) 1024d760907c1d42726fa0c8c48efa28385ed339bb94Enrico Granata .SetHideItemNames(true); 1025d760907c1d42726fa0c8c48efa28385ed339bb94Enrico Granata 1026e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata AddStringSummary(vectors_category_sp, 1027e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata "${var.uint128}", 1028e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata ConstString("builtin_type_vec128"), 1029e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata objc_flags); 1030e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata 1031e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata AddStringSummary(vectors_category_sp, 1032e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata "", 1033e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata ConstString("float [4]"), 1034e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata vector_flags); 1035e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata AddStringSummary(vectors_category_sp, 1036e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata "", 1037e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata ConstString("int32_t [4]"), 1038e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata vector_flags); 1039e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata AddStringSummary(vectors_category_sp, 1040e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata "", 1041e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata ConstString("int16_t [8]"), 1042e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata vector_flags); 1043e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata AddStringSummary(vectors_category_sp, 1044e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata "", 1045e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata ConstString("vDouble"), 1046e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata vector_flags); 1047e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata AddStringSummary(vectors_category_sp, 1048e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata "", 1049e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata ConstString("vFloat"), 1050e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata vector_flags); 1051e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata AddStringSummary(vectors_category_sp, 1052e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata "", 1053e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata ConstString("vSInt8"), 1054e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata vector_flags); 1055e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata AddStringSummary(vectors_category_sp, 1056e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata "", 1057e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata ConstString("vSInt16"), 1058e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata vector_flags); 1059e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata AddStringSummary(vectors_category_sp, 1060e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata "", 1061e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata ConstString("vSInt32"), 1062e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata vector_flags); 1063e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata AddStringSummary(vectors_category_sp, 1064e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata "", 1065e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata ConstString("vUInt16"), 1066e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata vector_flags); 1067e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata AddStringSummary(vectors_category_sp, 1068e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata "", 1069e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata ConstString("vUInt8"), 1070e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata vector_flags); 1071e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata AddStringSummary(vectors_category_sp, 1072e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata "", 1073e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata ConstString("vUInt16"), 1074e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata vector_flags); 1075e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata AddStringSummary(vectors_category_sp, 1076e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata "", 1077e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata ConstString("vUInt32"), 1078e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata vector_flags); 1079e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata AddStringSummary(vectors_category_sp, 1080e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata "", 1081e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata ConstString("vBool32"), 1082e9101f2b27ab3f462e05dd59f4dc5b58fef81f0eEnrico Granata vector_flags); 1083141f8d98cb74262914d66a7af4732e8cb2d8699fGreg Clayton} 1084