pub fn program_failure(
    log_collector: &Option<Rc<RefCell<LogCollector>>>,
    program_id: &Pubkey,
    err: &InstructionError,
) {
    ic_logger_msg!(log_collector, "Program {} failed: {}", program_id, err);
}
/// Log program execution failure
///
/// The general form is:
///
/// ```notrust
/// "Program <address> failed: <program error details>"
/// ```
Log program execution failure
The general form is.


Log program execution failure The general form is .
pub fn program_failure(
    log_collector: &Option<Rc<RefCell<LogCollector>>>,
    program_id: &Pubkey,
    err: &InstructionError,
) {
    ic_logger_msg!(log_collector, "Program {} failed: {}", program_id, err);
}
pub fn program_failure ( log_collector : & Option < Rc < RefCell < LogCollector > > > , program_id : & Pubkey , err : & InstructionError , ) { ic_logger_msg ! ( log_collector " " program_id err ) ; }
Log program execution failure
The general form is:
Log program execution failure The general form is :
log_collector
&Option<Rc<RefCell<LogCollector>>>
program_id
&Pubkey
err
&InstructionError