Line data Source code
1 : /* 2 : * * Copyright (c) 2021 Juniper Networks, Inc. All rights reserved. 3 : * */ 4 : #include <base/task.h> 5 : #include <cmn/agent.h> 6 : 7 : typedef void (*cxa_throw_type)(void *, void *, void (*) (void *)); 8 : cxa_throw_type AgentCxaThrow = 0; 9 : 10 0 : void LoadAgentThrow() 11 : { 12 0 : AgentCxaThrow = (cxa_throw_type)dlsym(RTLD_NEXT, "__cxa_throw"); 13 0 : } 14 : 15 0 : void __cxa_throw (void *thrown_exception, void *pvtinfo, void (*dest)(void *)) 16 : { 17 : 18 0 : if (AgentCxaThrow == 0) 19 0 : LoadAgentThrow(); 20 : 21 0 : assert(0); 22 : 23 : AgentCxaThrow(thrown_exception, pvtinfo, dest); 24 : while(1); 25 : }