nm perception instance init done! DDR_SHARED_MEM: Alloc's: 79 alloc's of 69861518 bytes DDR_SHARED_MEM: Free's : 4 free's of 279408 bytes DDR_SHARED_MEM: Open's : 75 allocs of 69582110 bytes DDR_SHARED_MEM: Total size: 536870912 bytes 985.168292 s: VX_ZONE_ERROR:[vxGetStatus:713] Reference is NULL MEM: ERROR: Failed to free memory at virt addr = (nil) !!! ======================== 222222222rtb_msg0x226_00_obstacle_type_l : 0 MEM: ERROR: Failed to free memory at virt addr = (nil) !!! ======================== 222222222rtb_msg0x226_00_obstacle_type_l : 0 MEM: ERROR: Failed to free memory at virt addr = (nil) !!! ======================== 222222222rtb_msg0x226_00_obstacle_type_l : 0 ./run.sh: line 3: 1977 Segmentation fault (core dumped) ./bin/hi_nullmax_fv.out --cfg config/app_multi_cam.cfg
时间: 2023-08-23 18:02:45 浏览: 192
根据你提供的信息,看起来是在执行某个程序时出现了段错误。段错误通常是由于访问了无效的内存地址导致的,可能是程序中的某个指针为空或指向错误的内存位置。
要解决这个问题,你可以尝试以下几个步骤:
1. 检查代码中是否存在空指针引用或数组越界等错误。确保所有的指针都被正确初始化,并且没有访问超出数组边界的元素。
2. 检查内存分配和释放的逻辑,确保正确地分配和释放内存。在你提供的日志中看到了几次内存释放错误的信息,可能是因为在释放内存之前,已经释放过了或者指针为空。
3. 如果你有可用的调试工具,如gdb,可以使用它来调试程序。通过设置断点和跟踪代码执行路径,可以找到导致段错误的具体位置。
4. 还可以尝试添加日志输出来跟踪程序的执行过程,以便更容易定位错误。
请注意,由于缺乏完整的代码和上下文信息,以上只是一些常见的排查方法,并不能保证解决问题。如果问题仍然存在,请进一步分析代码以找出具体原因,并进行必要的修复。
相关问题
std::vector<base::ObjectPtr> radar_objects; if (!radar_perception_->Perceive(corrected_obstacles, options, &radar_objects)) { out_message->error_code_ = apollo::common::ErrorCode::PERCEPTION_ERROR_PROCESS; AERROR << "RadarDetector Proc failed."; return true; } out_message->frame_.reset(new base::Frame()); out_message->frame_->sensor_info = radar_info_; out_message->frame_->timestamp = timestamp; out_message->frame_->sensor2world_pose = radar_trans; out_message->frame_->objects = radar_objects; for (auto object_ptr : radar_objects) { object_ptr->local_center = radar2novatel_trans * radar_trans.inverse()* object_ptr->center; AINFO << "Local center point: " << object_ptr->local_center.transpose(); } return true; const double end_timestamp = Clock::NowInSeconds(); const double end_latency = (end_timestamp - in_message->header().timestamp_sec()) * 1e3; AINFO << "FRAME_STATISTICS:Radar:End:msg_time[" << in_message->header().timestamp_sec() << "]:cur_time[" << end_timestamp << "]:cur_latency[" << end_latency << "]"; PERF_BLOCK_END_WITH_INDICATOR(radar_info_.name, "radar_perception"); return true; }
这段代码是一个函数,它处理雷达感知的结果。首先,它将感知到的障碍物数据存储在一个名为radar_objects的vector中。
然后,它创建一个新的base::Frame对象,并将雷达传感器的信息、时间戳、传感器到世界坐标系的变换矩阵和雷达障碍物数据保存在该对象中。
接下来,通过对radar_objects中的每个对象进行循环遍历,计算每个对象的本地中心点坐标,并将结果保存在对象的local_center属性中。
最后,计算处理完成的时间戳和延迟,并输出相关的日志信息。
函数最后返回true表示处理成功。
W W0000 00:00:1686143051.294691 29211 feature_matcher_and_filter_utils.cc:269] INVALID_ARGUMENT: integration window start at 0 === Source Location Trace: === third_party/redwood/perception/imu_processing/imu_integrator/imu_integrator_utils.cc:96 Use identity R. 2023-06-07 21:04:11.391 29015-29114 Unity com.arapp.xinhe W The referenced script (Unknown) on this Behaviour is missing! 2023-06-07 21:04:11.3
这段信息中包含了两条不同的日志,我来分别解释一下。
第一条日志:
```
W0000 00:00:1686143051.294691 29211 feature_matcher_and_filter_utils.cc:269] INVALID_ARGUMENT: integration window start at 0 === Source Location Trace: === third_party/redwood/perception/imu_processing/imu_integrator/imu_integrator_utils.cc:96 Use identity R.
```
这条日志可能是由于代码中的某个参数传入了无效的值导致的。具体是哪个参数,需要您进一步检查代码和日志。
第二条日志:
```
W The referenced script (Unknown) on this Behaviour is missing!
```
这条日志是由于 Unity 中的某个脚本丢失导致的。您需要检查您的 Unity 项目中是否有某个脚本被删除或者移动了位置。如果是这个原因导致的,您可以重新添加脚本或者修改组件上的脚本引用。
阅读全文