Enumerations

enum RegisterID
Name Value
kUnknown 0
kARMv8_x0 1000
kARMv8_x1 1001
kARMv8_x2 1002
kARMv8_x3 1003
kARMv8_x4 1004
kARMv8_x5 1005
kARMv8_x6 1006
kARMv8_x7 1007
kARMv8_x8 1008
kARMv8_x9 1009
kARMv8_x10 1010
kARMv8_x11 1011
kARMv8_x12 1012
kARMv8_x13 1013
kARMv8_x14 1014
kARMv8_x15 1015
kARMv8_x16 1016
kARMv8_x17 1017
kARMv8_x18 1018
kARMv8_x19 1019
kARMv8_x20 1020
kARMv8_x21 1021
kARMv8_x22 1022
kARMv8_x23 1023
kARMv8_x24 1024
kARMv8_x25 1025
kARMv8_x26 1026
kARMv8_x27 1027
kARMv8_x28 1028
kARMv8_x29 1029
kARMv8_lr 1030
kARMv8_sp 1031
kARMv8_pc 1032
kARMv8_cpsr 1034
kARMv8_w0 1035
kARMv8_w1 1036
kARMv8_w2 1037
kARMv8_w3 1038
kARMv8_w4 1039
kARMv8_w5 1040
kARMv8_w6 1041
kARMv8_w7 1042
kARMv8_w8 1043
kARMv8_w9 1044
kARMv8_w10 1045
kARMv8_w11 1046
kARMv8_w12 1047
kARMv8_w13 1048
kARMv8_w14 1049
kARMv8_w15 1050
kARMv8_w16 1051
kARMv8_w17 1052
kARMv8_w18 1053
kARMv8_w19 1054
kARMv8_w20 1055
kARMv8_w21 1056
kARMv8_w22 1057
kARMv8_w23 1058
kARMv8_w24 1059
kARMv8_w25 1060
kARMv8_w26 1061
kARMv8_w27 1062
kARMv8_w28 1063
kARMv8_w29 1064
kARMv8_w30 1065
kARMv8_x30 1066
kARMv8_tpidr 1067
kARMv8_fpcr 1100
kARMv8_fpsr 1101
kARMv8_v0 1200
kARMv8_v1 1201
kARMv8_v2 1202
kARMv8_v3 1203
kARMv8_v4 1204
kARMv8_v5 1205
kARMv8_v6 1206
kARMv8_v7 1207
kARMv8_v8 1208
kARMv8_v9 1209
kARMv8_v10 1210
kARMv8_v11 1211
kARMv8_v12 1212
kARMv8_v13 1213
kARMv8_v14 1214
kARMv8_v15 1215
kARMv8_v16 1216
kARMv8_v17 1217
kARMv8_v18 1218
kARMv8_v19 1219
kARMv8_v20 1220
kARMv8_v21 1221
kARMv8_v22 1222
kARMv8_v23 1223
kARMv8_v24 1224
kARMv8_v25 1225
kARMv8_v26 1226
kARMv8_v27 1227
kARMv8_v28 1228
kARMv8_v29 1229
kARMv8_v30 1230
kARMv8_v31 1231
kARMv8_d0 1232
kARMv8_d1 1233
kARMv8_d2 1234
kARMv8_d3 1235
kARMv8_d4 1236
kARMv8_d5 1237
kARMv8_d6 1238
kARMv8_d7 1239
kARMv8_d8 1240
kARMv8_d9 1241
kARMv8_d10 1242
kARMv8_d11 1243
kARMv8_d12 1244
kARMv8_d13 1245
kARMv8_d14 1246
kARMv8_d15 1247
kARMv8_d16 1248
kARMv8_d17 1249
kARMv8_d18 1250
kARMv8_d19 1251
kARMv8_d20 1252
kARMv8_d21 1253
kARMv8_d22 1254
kARMv8_d23 1255
kARMv8_d24 1256
kARMv8_d25 1257
kARMv8_d26 1258
kARMv8_d27 1259
kARMv8_d28 1260
kARMv8_d29 1261
kARMv8_d30 1262
kARMv8_d31 1263
kARMv8_s0 1264
kARMv8_s1 1265
kARMv8_s2 1266
kARMv8_s3 1267
kARMv8_s4 1268
kARMv8_s5 1269
kARMv8_s6 1270
kARMv8_s7 1271
kARMv8_s8 1272
kARMv8_s9 1273
kARMv8_s10 1274
kARMv8_s11 1275
kARMv8_s12 1276
kARMv8_s13 1277
kARMv8_s14 1278
kARMv8_s15 1279
kARMv8_s16 1280
kARMv8_s17 1281
kARMv8_s18 1282
kARMv8_s19 1283
kARMv8_s20 1284
kARMv8_s21 1285
kARMv8_s22 1286
kARMv8_s23 1287
kARMv8_s24 1289
kARMv8_s25 1290
kARMv8_s26 1291
kARMv8_s27 1292
kARMv8_s28 1293
kARMv8_s29 1294
kARMv8_s30 1295
kARMv8_s31 1296
kARMv8_id_aa64dfr0_el1 1300
kARMv8_mdscr_el1 1301
kARMv8_dbgbcr0_el1 1320
kARMv8_dbgbcr1_el1 1321
kARMv8_dbgbcr2_el1 1322
kARMv8_dbgbcr3_el1 1323
kARMv8_dbgbcr4_el1 1324
kARMv8_dbgbcr5_el1 1325
kARMv8_dbgbcr6_el1 1326
kARMv8_dbgbcr7_el1 1327
kARMv8_dbgbcr8_el1 1328
kARMv8_dbgbcr9_el1 1329
kARMv8_dbgbcr10_el1 1330
kARMv8_dbgbcr11_el1 1331
kARMv8_dbgbcr12_el1 1332
kARMv8_dbgbcr13_el1 1333
kARMv8_dbgbcr14_el1 1334
kARMv8_dbgbcr15_el1 1335
kARMv8_dbgbvr0_el1 1340
kARMv8_dbgbvr1_el1 1341
kARMv8_dbgbvr2_el1 1342
kARMv8_dbgbvr3_el1 1343
kARMv8_dbgbvr4_el1 1344
kARMv8_dbgbvr5_el1 1345
kARMv8_dbgbvr6_el1 1346
kARMv8_dbgbvr7_el1 1347
kARMv8_dbgbvr8_el1 1348
kARMv8_dbgbvr9_el1 1349
kARMv8_dbgbvr10_el1 1350
kARMv8_dbgbvr11_el1 1351
kARMv8_dbgbvr12_el1 1352
kARMv8_dbgbvr13_el1 1353
kARMv8_dbgbvr14_el1 1354
kARMv8_dbgbvr15_el1 1355
kARMv8_dbgwcr0_el1 1360
kARMv8_dbgwcr1_el1 1361
kARMv8_dbgwcr2_el1 1362
kARMv8_dbgwcr3_el1 1363
kARMv8_dbgwcr4_el1 1364
kARMv8_dbgwcr5_el1 1365
kARMv8_dbgwcr6_el1 1366
kARMv8_dbgwcr7_el1 1367
kARMv8_dbgwcr8_el1 1368
kARMv8_dbgwcr9_el1 1369
kARMv8_dbgwcr10_el1 1370
kARMv8_dbgwcr11_el1 1371
kARMv8_dbgwcr12_el1 1372
kARMv8_dbgwcr13_el1 1373
kARMv8_dbgwcr14_el1 1374
kARMv8_dbgwcr15_el1 1375
kARMv8_dbgwvr0_el1 1380
kARMv8_dbgwvr1_el1 1381
kARMv8_dbgwvr2_el1 1382
kARMv8_dbgwvr3_el1 1383
kARMv8_dbgwvr4_el1 1384
kARMv8_dbgwvr5_el1 1385
kARMv8_dbgwvr6_el1 1386
kARMv8_dbgwvr7_el1 1387
kARMv8_dbgwvr8_el1 1388
kARMv8_dbgwvr9_el1 1389
kARMv8_dbgwvr10_el1 1390
kARMv8_dbgwvr11_el1 1391
kARMv8_dbgwvr12_el1 1392
kARMv8_dbgwvr13_el1 1393
kARMv8_dbgwvr14_el1 1394
kARMv8_dbgwvr15_el1 1395
kX64_rax 2000
kX64_rbx 2001
kX64_rcx 2002
kX64_rdx 2003
kX64_rsi 2004
kX64_rdi 2005
kX64_rbp 2006
kX64_rsp 2007
kX64_r8 2008
kX64_r9 2009
kX64_r10 2010
kX64_r11 2011
kX64_r12 2012
kX64_r13 2013
kX64_r14 2014
kX64_r15 2015
kX64_rip 2016
kX64_rflags 2017
kX64_ah 2018
kX64_al 2019
kX64_ax 2020
kX64_eax 2021
kX64_bh 2022
kX64_bl 2023
kX64_bx 2024
kX64_ebx 2025
kX64_ch 2026
kX64_cl 2027
kX64_cx 2028
kX64_ecx 2029
kX64_dh 2030
kX64_dl 2031
kX64_dx 2032
kX64_edx 2033
kX64_si 2034
kX64_esi 2035
kX64_di 2036
kX64_edi 2037
kX64_fsbase 2038
kX64_gsbase 2039
kX64_fcw 2100
kX64_fsw 2101
kX64_ftw 2102
kX64_fop 2104
kX64_fip 2105
kX64_fdp 2106
kX64_st0 2110
kX64_st1 2111
kX64_st2 2112
kX64_st3 2113
kX64_st4 2114
kX64_st5 2115
kX64_st6 2116
kX64_st7 2117
kX64_mm0 2120
kX64_mm1 2121
kX64_mm2 2122
kX64_mm3 2123
kX64_mm4 2124
kX64_mm5 2125
kX64_mm6 2126
kX64_mm7 2127
kX64_mxcsr 2200
kX64_zmm0 2400
kX64_zmm1 2401
kX64_zmm2 2402
kX64_zmm3 2403
kX64_zmm4 2404
kX64_zmm5 2405
kX64_zmm6 2406
kX64_zmm7 2407
kX64_zmm8 2408
kX64_zmm9 2409
kX64_zmm10 2410
kX64_zmm11 2411
kX64_zmm12 2412
kX64_zmm13 2413
kX64_zmm14 2414
kX64_zmm15 2415
kX64_zmm16 2416
kX64_zmm17 2417
kX64_zmm18 2418
kX64_zmm19 2419
kX64_zmm20 2420
kX64_zmm21 2421
kX64_zmm22 2422
kX64_zmm23 2423
kX64_zmm24 2424
kX64_zmm25 2425
kX64_zmm26 2426
kX64_zmm27 2427
kX64_zmm28 2428
kX64_zmm29 2429
kX64_zmm30 2430
kX64_zmm31 2431
kX64_xmm0 2432
kX64_xmm1 2433
kX64_xmm2 2434
kX64_xmm3 2435
kX64_xmm4 2436
kX64_xmm5 2437
kX64_xmm6 2438
kX64_xmm7 2439
kX64_xmm8 2440
kX64_xmm9 2441
kX64_xmm10 2442
kX64_xmm11 2443
kX64_xmm12 2444
kX64_xmm13 2445
kX64_xmm14 2446
kX64_xmm15 2447
kX64_xmm16 2448
kX64_xmm17 2449
kX64_xmm18 2450
kX64_xmm19 2451
kX64_xmm20 2452
kX64_xmm21 2453
kX64_xmm22 2454
kX64_xmm23 2455
kX64_xmm24 2456
kX64_xmm25 2457
kX64_xmm26 2458
kX64_xmm27 2459
kX64_xmm28 2460
kX64_xmm29 2461
kX64_xmm30 2462
kX64_xmm31 2463
kX64_ymm0 2464
kX64_ymm1 2465
kX64_ymm2 2466
kX64_ymm3 2467
kX64_ymm4 2468
kX64_ymm5 2469
kX64_ymm6 2470
kX64_ymm7 2471
kX64_ymm8 2472
kX64_ymm9 2473
kX64_ymm10 2474
kX64_ymm11 2475
kX64_ymm12 2476
kX64_ymm13 2477
kX64_ymm14 2478
kX64_ymm15 2479
kX64_ymm16 2480
kX64_ymm17 2481
kX64_ymm18 2482
kX64_ymm19 2483
kX64_ymm20 2484
kX64_ymm21 2485
kX64_ymm22 2486
kX64_ymm23 2487
kX64_ymm24 2488
kX64_ymm25 2489
kX64_ymm26 2490
kX64_ymm27 2491
kX64_ymm28 2492
kX64_ymm29 2493
kX64_ymm30 2494
kX64_ymm31 2495
kX64_dr0 2600
kX64_dr1 2601
kX64_dr2 2602
kX64_dr3 2603
kX64_dr6 2606
kX64_dr7 2607
kRiscv64_zero 3000
kRiscv64_ra 3001
kRiscv64_sp 3002
kRiscv64_gp 3003
kRiscv64_tp 3004
kRiscv64_t0 3005
kRiscv64_t1 3006
kRiscv64_t2 3007
kRiscv64_s0 3008
kRiscv64_s1 3009
kRiscv64_a0 3010
kRiscv64_a1 3011
kRiscv64_a2 3012
kRiscv64_a3 3013
kRiscv64_a4 3014
kRiscv64_a5 3015
kRiscv64_a6 3016
kRiscv64_a7 3017
kRiscv64_s2 3018
kRiscv64_s3 3019
kRiscv64_s4 3020
kRiscv64_s5 3021
kRiscv64_s6 3022
kRiscv64_s7 3023
kRiscv64_s8 3024
kRiscv64_s9 3025
kRiscv64_s10 3026
kRiscv64_s11 3027
kRiscv64_t3 3028
kRiscv64_t4 3029
kRiscv64_t5 3030
kRiscv64_t6 3031
kRiscv64_x0 3032
kRiscv64_x1 3033
kRiscv64_x2 3034
kRiscv64_x3 3035
kRiscv64_x4 3036
kRiscv64_x5 3037
kRiscv64_x6 3038
kRiscv64_x7 3039
kRiscv64_x8 3040
kRiscv64_x9 3041
kRiscv64_x10 3042
kRiscv64_x11 3043
kRiscv64_x12 3044
kRiscv64_x13 3045
kRiscv64_x14 3046
kRiscv64_x15 3047
kRiscv64_x16 3048
kRiscv64_x17 3049
kRiscv64_x18 3050
kRiscv64_x19 3051
kRiscv64_x20 3052
kRiscv64_x21 3053
kRiscv64_x22 3054
kRiscv64_x23 3055
kRiscv64_x24 3056
kRiscv64_x25 3057
kRiscv64_x26 3058
kRiscv64_x27 3059
kRiscv64_x28 3060
kRiscv64_x29 3061
kRiscv64_x30 3062
kRiscv64_x31 3063
kRiscv64_pc 3064
kRiscv64_fcsr 3100
kRiscv64_ft0 3101
kRiscv64_ft1 3102
kRiscv64_ft2 3103
kRiscv64_ft3 3104
kRiscv64_ft4 3105
kRiscv64_ft5 3106
kRiscv64_ft6 3107
kRiscv64_ft7 3108
kRiscv64_fs0 3109
kRiscv64_fs1 3110
kRiscv64_fa0 3111
kRiscv64_fa1 3112
kRiscv64_fa2 3113
kRiscv64_fa3 3114
kRiscv64_fa4 3115
kRiscv64_fa5 3116
kRiscv64_fa6 3117
kRiscv64_fa7 3118
kRiscv64_fs2 3119
kRiscv64_fs3 3120
kRiscv64_fs4 3121
kRiscv64_fs5 3122
kRiscv64_fs6 3123
kRiscv64_fs7 3124
kRiscv64_fs8 3125
kRiscv64_fs9 3126
kRiscv64_fs10 3127
kRiscv64_fs11 3128
kRiscv64_ft8 3129
kRiscv64_ft9 3130
kRiscv64_ft10 3131
kRiscv64_ft11 3132
kRiscv64_f0 3133
kRiscv64_f1 3134
kRiscv64_f2 3135
kRiscv64_f3 3136
kRiscv64_f4 3137
kRiscv64_f5 3138
kRiscv64_f6 3139
kRiscv64_f7 3140
kRiscv64_f8 3141
kRiscv64_f9 3142
kRiscv64_f10 3143
kRiscv64_f11 3144
kRiscv64_f12 3145
kRiscv64_f13 3146
kRiscv64_f14 3147
kRiscv64_f15 3148
kRiscv64_f16 3149
kRiscv64_f17 3150
kRiscv64_f18 3151
kRiscv64_f19 3152
kRiscv64_f20 3153
kRiscv64_f21 3154
kRiscv64_f22 3155
kRiscv64_f23 3156
kRiscv64_f24 3157
kRiscv64_f25 3158
kRiscv64_f26 3159
kRiscv64_f27 3160
kRiscv64_f28 3161
kRiscv64_f29 3162
kRiscv64_f30 3163
kRiscv64_f31 3164

Defined at line 12 of file ../../src/developer/debug/shared/register_id.h

enum Platform
Name Value
kUnknown 0
kFuchsia 1
kLinux 2
kMac 3

Only append to this list, the values are encoded in the IPC protocol which has stability

guarantees.

Defined at line 14 of file ../../src/developer/debug/shared/platform.h

enum Arch
Name Value
kUnknown 0
kX64 1
kArm64 2
kRiscv64 3

Only append to this list, the values are encoded in the IPC protocol which has stability

guarantees.

Defined at line 14 of file ../../src/developer/debug/shared/arch.h

enum SpecialRegisterType
Name Value
kNone 0
kIP 1
kSP 2
kTP 3

Defined at line 25 of file ../../src/developer/debug/shared/register_info.h

enum WatchType
Name Value
kChannel 0
kFdio 1
kProcessExceptions 2
kJobExceptions 3
kSocket 4
kEventPair 5

Defined at line 30 of file ../../src/developer/debug/shared/message_loop_fuchsia.h

enum RegisterFormat
Name Value
kGeneral 0
kFloat 1
kVector 2
kVoidAddress 3
kWordAddress 4
kSpecial 5

Note that we separate out "void" addresses and "word" addresses so the debugger frontend can

assign types to register values when appropriate.

Defined at line 34 of file ../../src/developer/debug/shared/register_info.h

enum LogCategory
Name Value
kAgent 0
kArchArm64 1
kArchx64 2
kBreakpoint 3
kJob 4
kMessageLoop 5
kProcess 6
kRemoteAPI 7
kSession 8
kSetting 9
kTest 10
kTiming 11
kThread 12
kWatchpoint 13
kWorkerPool 14
kDebugAdapter 15
kBuildIDIndex 16
kProcessSymbols 17
kModuleSymbols 18
kSystemSymbols 19
kDownloadManager 20
kAll 21
kNone 22

Log Categories ----------------------------------------------------------------------------------

Defined at line 35 of file ../../src/developer/debug/shared/logging/debug.h

enum LogSeverity
Name Value
kInfo 0
kWarn 1
kError 2

Implementation ----------------------------------------------------------------------------------

Defined at line 50 of file ../../src/developer/debug/shared/logging/logging.h

enum RegisterCategory
Name Value
kNone 0
kGeneral 1
kFloatingPoint 2
kVector 3
kDebug 4
kLast 5

Categories --------------------------------------------------------------------------------------

Defined at line 133 of file ../../src/developer/debug/shared/register_info.h

Records

Functions

  • bool StringStartsWith (std::string_view str, std::string_view begins_with)

    Returns true if the first argument begins in exactly the second.

    Defined at line 11 of file ../../src/developer/debug/shared/string_util.cc

  • const char * ExceptionTypeToString (uint32_t type)

    Defined at line 9 of file ../../src/developer/debug/shared/zircon_utils.cc

  • bool IsDebuggerAttached ()

    Return whether there's a debugger attached to the current process.

    Defined at line 13 of file ../../src/lib/debug/debug.cc

  • RegisterValue CreateRegisterWithTestData (RegisterID id, size_t length)

    Creates a register with a data pattern within it. The pattern will 0x010203 ... (little-endian).

    Defined at line 9 of file ../../src/developer/debug/shared/register_test_support.cc

  • const char * ZxStatusToString (zx_status_t status)

    Defined at line 13 of file ../../src/developer/debug/shared/zx_status.cc

  • bool StringEndsWith (std::string_view str, std::string_view ends_with)

    Returns true if the first argument ends in exactly the second.

    Defined at line 15 of file ../../src/developer/debug/shared/string_util.cc

  • std::string HandleTypeToString (uint32_t handle_type)

    Converts a uint32_t handle type to a string. Returns "<unknown>" on failure.

    Defined at line 9 of file ../../src/developer/debug/shared/handle_info.cc

  • bool StringContains (std::string_view haystack, std::string_view needle)

    Defined at line 19 of file ../../src/developer/debug/shared/string_util.cc

  • Platform CurrentSystemPlatform ()

    Returns the platform of the currently executing code. Note: for the zxdb frontend, this will tell

    you the platform that the zxdb frontend is running on, not the platform being debugged.

    Defined at line 9 of file ../../src/developer/debug/shared/platform.cc

  • std::string CachePolicyToString (uint32_t cache_policy)

    Decodes a ZX_CACHE_POLICY_* enum.

    Defined at line 75 of file ../../src/developer/debug/shared/handle_info.cc

  • const char * PlatformToString (Platform p)

    Defined at line 21 of file ../../src/developer/debug/shared/platform.cc

  • void WaitForDebugger (uint32_t seconds)

    Wait until a debugger attaches, and then issue a breakpoint. The debugger can

    continue the execution.

    If there's no debugger attached within |seconds| seconds, the breakpoint will

    still be issued and the process will crash.

    Defined at line 23 of file ../../src/lib/debug/debug.cc

  • const char * ArchToString (Arch a)

    Defined at line 9 of file ../../src/developer/debug/shared/arch.cc

  • std::vector<std::string> HandleRightsToStrings (uint32_t handle_rights)

    Returns a vector of strings, one for each right set.

    Defined at line 90 of file ../../src/developer/debug/shared/handle_info.cc

  • void SetDebugLogging (bool )

    Activate this flag to activate debug output.

    Defined at line 115 of file ../../src/developer/debug/shared/logging/debug.cc

  • bool IsDebugLoggingActive ()

    Defined at line 111 of file ../../src/developer/debug/shared/logging/debug.cc

  • void BreakIntoDebuggerIfAttached ()

    If a debugger is attached, trigger a breakpoint. Do nothing otherwise.

    Defined at line 31 of file ../../src/lib/debug/debug.cc

  • const char * PlatformProcessIdName (Platform p, bool caps)

    Returns the string to use for a process or thread ID on the given platform. When caps is set, the

    result will be all caps, otherwise it will be all lowercase.

    Defined at line 35 of file ../../src/developer/debug/shared/platform.cc

  • std::vector<std::string> VmoFlagsToStrings (uint32_t flags)

    Converts a bitmask of ZX_INFO_VMO_* to a list of strings.

    Defined at line 128 of file ../../src/developer/debug/shared/handle_info.cc

  • const char * PlatformThreadIdName (Platform p, bool caps)

    Defined at line 47 of file ../../src/developer/debug/shared/platform.cc

  • Status ZxStatus (zx_status_t s)

    If there is an error and no message is given, the ZX_* constant will be queried and used.

    If given, the message will be used for most display purposes instead of the platform value, so

    if the value is important and you use a custom message, it should be manually included.

    These are split rather than using default values to avoid creating empty std::strings in the

    common case.

    Defined at line 35 of file ../../src/developer/debug/shared/status.cc

  • Status ZxStatus (zx_status_t s, std::string msg)

    Defined at line 48 of file ../../src/developer/debug/shared/status.cc

  • Status ErrnoStatus (int en)

    As with the ZxStatus version above, this will automatically use the strerror() string if no

    message is given.

    Defined at line 75 of file ../../src/developer/debug/shared/status.cc

  • Status ErrnoStatus (int en, std::string msg)

    Defined at line 82 of file ../../src/developer/debug/shared/status.cc

  • const char * WatchTypeToString (WatchType )

    Defined at line 533 of file ../../src/developer/debug/shared/message_loop_fuchsia.cc

  • bool operator< (const FileLineFunction & a, const FileLineFunction & b)

    Comparison function for use in set and map.

    Defined at line 12 of file ../../src/developer/debug/shared/logging/file_line_function.cc

  • bool operator== (const FileLineFunction & a, const FileLineFunction & b)

    Defined at line 28 of file ../../src/developer/debug/shared/logging/file_line_function.cc

  • bool operator!= (const FileLineFunction & a, const FileLineFunction & b)

    Defined at line 32 of file ../../src/developer/debug/shared/logging/file_line_function.cc

  • template <class BidirectionalIterator, class T, class CompareLess, class CompareEqual>
    BidirectionalIterator LargestLessOrEqual (BidirectionalIterator first, BidirectionalIterator last, const T & val, CompareLess less, CompareEqual equals)

    Returns an iterator pointing to the largest element in [first, last) less than or equal to the

    given |val|. As with std::lower_bound, the range [first, last) must be sorted according to

    the |less| comparator.

    If the query matches exactly a sequence of equal items, the first duplicate will be returned. If

    the query value matches a sequence of duplicates and does not exactly equal to them (it's

    returning the previous item), the last of the sequence will be returned.

    For example, if you had a sorted range of addresses and you want to know which one begins the

    range which an address falls into:

    std::vector

    <AddressRecord

    > ranges;

    int64_t address;

    auto found = LargestLessOrEqual(

    ranges.begin(), ranges.end(), address,

    [](const AddressRecord

    &

    record, uint64_t addr) { return record.addr

    <

    addr; },

    [](const AddressRecord

    &

    record, uint64_t addr) { return record.addr == addr; });

    For simple types, you can pass |std::less

    <T

    >()| and |std::equal_to

    <T

    >()| from

    <functional

    > for

    the comparators.

    Defined at line 34 of file ../../src/developer/debug/shared/largest_less_or_equal.h

  • const RegisterInfo * InfoForRegister (RegisterID id)

    Defined at line 603 of file ../../src/developer/debug/shared/register_info.cc

  • const RegisterInfo * InfoForRegister (Arch arch, const std::string & name)

    Defined at line 620 of file ../../src/developer/debug/shared/register_info.cc

  • const char * RegisterIDToString (RegisterID )

    Defined at line 686 of file ../../src/developer/debug/shared/register_info.cc

  • RegisterID StringToRegisterID (Arch arch, const std::string & )

    Defined at line 697 of file ../../src/developer/debug/shared/register_info.cc

  • RegisterID GetSpecialRegisterID (Arch , SpecialRegisterType )

    Returns the register ID for the given special register.

    Defined at line 637 of file ../../src/developer/debug/shared/register_info.cc

  • SpecialRegisterType GetSpecialRegisterType (RegisterID id)

    Returns the special register type for a register ID.

    Defined at line 715 of file ../../src/developer/debug/shared/register_info.cc

  • const RegisterInfo * DWARFToRegisterInfo (Arch , uint32_t dwarf_reg_id)

    Converts the ID number used by DWARF to our register info. Returns null if not found.

    Defined at line 734 of file ../../src/developer/debug/shared/register_info.cc

  • Arch GetArchForRegisterID (RegisterID )

    Find out what arch a register ID belongs to

    Defined at line 704 of file ../../src/developer/debug/shared/register_info.cc

  • bool IsGeneralRegister (RegisterID )

    Returns true if the given register is a "general" register. General

    registers are sent as part of the unwind frame data. Other registers must

    be requested specially from the target.

    Defined at line 753 of file ../../src/developer/debug/shared/register_info.cc

  • cpp20::span<const uint8_t> GetRegisterData (const std::vector<RegisterValue> & regs, RegisterID id)

    Gets the data for the given register from the array.

    This does two things. It searches for either the requested register or the canonical register.

    If it's a different canonical register (like you're asking for the a 32 bits pseudoregister out

    of a 64 bit register), the relevant bits will be extracted.

    If found, the return value will be the range of data within the data owned by |regs|

    corresponding to the requested register. If the source data is truncated, the result will be

    truncated also so it may have less data than expected.

    If the register is not found, the returned view will be empty.

    Defined at line 817 of file ../../src/developer/debug/shared/register_info.cc

  • void SetLogCategories (std::initializer_list<LogCategory> )

    Defined at line 123 of file ../../src/developer/debug/shared/logging/debug.cc

  • std::string DR6ToString (uint64_t dr6)

    Debug functions -------------------------------------------------------------

    Defined at line 16 of file ../../src/developer/debug/shared/arch_x86.cc

  • Status::Type MapFuchsiaError (zx_status_t * status)

    Map some Fuchsia errors to their cross-platform equivalents. Resets the status to 0 if a

    non-platform error was generated.

    Defined at line 16 of file ../../src/developer/debug/shared/status.cc

  • std::string DR7ToString (uint64_t dr7)

    Defined at line 24 of file ../../src/developer/debug/shared/arch_x86.cc

  • const char * RegisterCategoryToString (RegisterCategory )

    Defined at line 762 of file ../../src/developer/debug/shared/register_info.cc

  • RegisterCategory RegisterIDToCategory (RegisterID )

    Defined at line 780 of file ../../src/developer/debug/shared/register_info.cc

  • bool CreateLocalNonBlockingPipe (fbl::unique_fd * out_end, fbl::unique_fd * in_end)

    Creates a nonblocking temporary pipe pipe and assigns the two ends of it to the two out

    parameters. Returns true on success.

    Defined at line 24 of file ../../src/developer/debug/shared/message_loop.cc

  • Status::Type MapErrnoError (int * en)

    Map some errno values to their cross-platform equivalents. Resets the status to 0 if a

    non-platform error was generated.

    Defined at line 59 of file ../../src/developer/debug/shared/status.cc