{"uid":"cap_3g9qKgfx7Oke2uzFodigD","slug":"c-exception-unwind-handler-selection-validator-3a1371b9","name":"C++ Exception Unwind Handler Selection Validator","description":"Prüft den behaupteten erreichten C++-Catch-Frame und die determinate Destruktorreihenfolge einer anonymen Unwind-Sicht.","url":"https://detect.halowerk.com/v1/F-A-NEXT-CPP_UNWIND/cpp-exception-unwind-handler-selection?utm_source=zero.xyz","method":"POST","headers":{},"bodySchema":{"type":"object","properties":{"artifact":{"type":"object","required":["cpp_unwind"],"properties":{"cpp_unwind":{"type":"object","required":["claim","frames","thrown_type","types"],"properties":{"claim":{"type":"number","maximum":1000000000000,"minimum":-1000000000000},"types":{"type":"array","items":{"type":"object","required":["parent","public_base"],"properties":{"parent":{"anyOf":[{"type":"null"},{"type":"number","maximum":1000000000000,"minimum":-1000000000000}]},"public_base":{"type":"boolean"}},"additionalProperties":false},"maxItems":512},"frames":{"type":"array","items":{"type":"object","required":["handlers","objects"],"properties":{"objects":{"type":"array","items":{"type":"object","required":["escaping_destructor_throw","id"],"properties":{"id":{"type":"number","maximum":1000000000000,"minimum":-1000000000000},"escaping_destructor_throw":{"type":"boolean"}},"additionalProperties":false},"maxItems":512},"handlers":{"type":"array","items":{"type":"number","maximum":1000000000000,"minimum":-1000000000000},"maxItems":512}},"additionalProperties":false},"maxItems":512},"thrown_type":{"type":"number","maximum":1000000000000,"minimum":-1000000000000}},"additionalProperties":false}},"additionalProperties":false}}},"responseSchema":null,"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"0.003","displayCostAsset":"USDC","priceDynamic":false,"priceHint":null,"priceStatus":"priced","priceSource":"probe","requiresHandshake":false,"reviewCount":0,"rating":{"score":"0.00","successRate":"0.00","reviews":0,"stars":null,"state":"unrated"},"availabilityStatus":"unknown","priceObserved":null,"sessionDeposit":null,"pricing":{"kind":"static","summary":"$0.003/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.003","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.003","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_fsm_Ct-MDUvnXNEg-Ey_4","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.003","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Validates claimed C++ exception unwind catch-frame selection and destructor ordering for a given unwind scenario","exampleAgentPrompt":"Check whether claim index 3 is the correct catch frame for a thrown type 2 with this type hierarchy and stack frames — the frames have handlers [1,3] and [2], with objects that have escaping destructor throws flagged, and the types include a public base from parent 0.","exampleUseCases":[{"title":"Validate catch frame for thrown exception","prompt":"I have a C++ unwind scenario where the thrown type is index 1, the type hierarchy has two entries (one with a null parent, one with parent 0 and public_base true), and two stack frames with handlers [0] and [1,2] respectively. Can you check if the claimed catch frame index 1 is correct?"},{"title":"Verify destructor order with escaping throws","prompt":"In this unwind scenario, some stack frame objects have escaping_destructor_throw set to true — can you verify that the claimed catch frame index 2 is still correctly selected and the destructor ordering is determinate given those flags?"},{"title":"Test RTTI type hierarchy matching for exception handler","prompt":"I need to validate whether exception type index 4 would be caught by handler type index 2 given this type inheritance hierarchy, with the claim that frame index 3 is selected — can you check that for me?"}],"resultDescription":"A validation result indicating whether the claimed catch frame index is correct for the given C++ exception unwind scenario, along with determinate destructor ordering correctness for the anonymous unwind view.","failureModes":["Invalid claim value outside allowed numeric range","Type array or frame array exceeding 512 items","Malformed type hierarchy with missing required fields","Circular or inconsistent parent references in type list","Missing required cpp_unwind fields returning 400 error","Ambiguous or indeterminate destructor order detected"],"whenToPreferThis":"Use this endpoint when you need to programmatically verify C++ exception unwind handler selection logic — particularly when testing compiler behavior, validating runtime type information hierarchies, or checking determinate destructor ordering in complex stack unwind scenarios involving multiple frames and type inheritance.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-11-05T12:18:31.865Z","isFirstParty":false,"canonicalSlug":"c-exception-unwind-handler-selection-validator-3a1371b9"}