当前位置: 首页 > news >正文

gdb 之 attach

参考链接

https://cloud.tencent.com/developer/article/1521208

thread266setscheduler-locking step
(gdb)bt#0 facebook::velox::HdfsReadFile::pread (this=0x7f3670186010, offset=18513484, length=16305, buf=0x7f37651cf540,stats=0x7f3670192600)at/work/gluten/ep/build-velox/build/velox_ep/velox/connectors/hive/storage_adapters/hdfs/HdfsReadFile.cpp:168#1 0x00007f36d39af1ea in facebook::velox::ReadFile::preadv (this=0x7f3670186010, offset=18513484,buffers=std::vector of length73,capacity128={...},stats=0x7f3670192600)at/work/gluten/ep/build-velox/build/velox_ep/velox/common/file/File.cpp:84#2 0x00007f36d3e59837 in facebook::velox::dwio::common::ReadFileInputStream::read (this=0x7f36701b9980,buffers=std::vector of length73,capacity128={...},offset=4,logType=facebook::velox::dwio::common::MetricsLog::MetricsType::FILE)at/work/gluten/ep/build-velox/build/velox_ep/velox/dwio/common/InputStream.cpp:105#3 0x00007f36da96f918 in facebook::velox::dwio::common::DirectCoalescedLoad::loadData (this=0x7f3670194ce0, prefetch=true)at/work/gluten/ep/build-velox/build/velox_ep/velox/dwio/common/DirectBufferedInput.cpp:321#4 0x00007f36d39451af in facebook::velox::cache::CoalescedLoad::loadOrFuture (this=0x7f3670194ce0, wait=0x0,ssdSavable=true)at/work/gluten/ep/build-velox/build/velox_ep/velox/common/caching/AsyncDataCache.cpp:302#5 0x00007f36da96ee5c in operator() (__closure=0x7f36697e9800)at/work/gluten/ep/build-velox/build/velox_ep/velox/dwio/common/DirectBufferedInput.cpp:226#6 0x00007f36da970ed0 in folly::detail::function::call_<facebook::velox::dwio::common::DirectBufferedInput::readRegions(const std::vector<facebook::velox::dwio::common::LoadRequest*>&, bool, const std::vector<int>&)::<lambda()>, true, false, void>(folly::detail::function::Data &) (p=...) at /work/gluten/dev/vcpkg/vcpkg_installed/x64-linux-avx/include/folly/Function.h:341#7 0x00007f36db04f634 in folly::detail::function::FunctionTraits<void ()>::operator()() (this=0x7f36697e9800)at/work/dev/vcpkg/.vcpkg/buildtrees/folly/src/4.07.01.00-4ae9f6791f.clean/folly/Function.h:368#8 folly::catch_exception<folly::Function<void ()>&, void (&)(char const*) noexcept, char const*&, void>(folly::Function<void ()>&, void (&)(char const*) noexcept, char const*&) (c=<optimized out>, t=...)at/work/dev/vcpkg/.vcpkg/buildtrees/folly/src/4.07.01.00-4ae9f6791f.clean/folly/lang/Exception.h:290#9 folly::Executor::invokeCatchingExns<folly::Function<void()>>(charconst*,folly::Function<void()>)(f=...,p=0x7f36e17f9cd5"ThreadPoolExecutor: func")at/work/dev/vcpkg/.vcpkg/buildtrees/folly/src/4.07.01.00-4ae9f6791f.clean/folly/Executor.h:234#10 folly::ThreadPoolExecutor::runTask (this=0x7f3ad0311e00, thread=std::shared_ptr (count 6, weak 0) 0x7f36701c22c0,task=...)at/work/dev/vcpkg/.vcpkg/buildtrees/folly/src/4.07.01.00-4ae9f6791f.clean/folly/executors/ThreadPoolExecutor.cpp:142#11 0x00007f36db0454bb in operator() (__closure=0x7f3670185dd0)at/opt/rh/devtoolset-11/root/usr/include/c++/11/ext/atomicity.h:109
单步调试运行

参考链接:

  • https://comate.baidu.com/zh/page/2bsqn86weoh
thread266setscheduler-locking step# 让 GDB 不因 SIGSEGV 而停止(gdb)handle SIGSEGV nostop noprint pass
# 或完全忽略(gdb)handle SIGSEGV ignore handle SIGPIPE nostop noprint pass
统计 breakpoint 命中次数

commandscontinueend
(gdb)bt#0 hdfsRead (fs=<optimized out>, f=0x7f4bdf4b8350, buffer=0x7f4bdc05b83c, length=720900)at/build/source/hadoop-hdfs-project/hadoop-hdfs-native-client/src/main/native/libhdfs/hdfs.c:1514#1 0x00007f4c66b6bf71 in facebook::velox::filesystems::arrow::io::internal::LibHdfsShim::Read (this=0x7f4c73f33560<facebook::velox::filesystems::arrow::io::internal::(anonymousnamespace)::libhdfs_shim>,fs=0x7f5062475510,file=0x7f4bdf4b8350,buffer=0x7f4bdc05b83c,length=720900)at/work/gluten/ep/build-velox/build/velox_ep/velox/external/hdfs/ArrowHdfsInternal.cpp:447#2 0x00007f4c66950de4 in facebook::velox::HdfsFile::read (this=0x7f4bdcb9e960, pos=0x7f4bdc05b83c"",length=720900)at/work/gluten/ep/build-velox/build/velox_ep/velox/connectors/hive/storage_adapters/hdfs/HdfsReadFile.cpp:57#3 0x00007f4c66951326 in facebook::velox::HdfsReadFile::Impl::preadInternal (this=0x7f4d081a1170, offset=4, length=1048576,pos=0x7f4bdc05b83c"")at/work/gluten/ep/build-velox/build/velox_ep/velox/connectors/hive/storage_adapters/hdfs/HdfsReadFile.cpp:100#4 0x00007f4c6695137a in facebook::velox::HdfsReadFile::Impl::pread (this=0x7f4d081a1170, offset=4, length=1048576,buf=0x7f4bdc00b840)at/work/gluten/ep/build-velox/build/velox_ep/velox/connectors/hive/storage_adapters/hdfs/HdfsReadFile.cpp:107#5 0x00007f4c66950871 in facebook::velox::HdfsReadFile::pread (this=0x7f4d08180920, offset=4, length=1048576,buf=0x7f4bdc00b840,stats=0x7f4d0818b550)at/work/gluten/ep/build-velox/build/velox_ep/velox/connectors/hive/storage_adapters/hdfs/HdfsReadFile.cpp:167#6 0x00007f4c639af1ea in facebook::velox::ReadFile::preadv (this=0x7f4d08180920, offset=4,buffers=std::vector of length73,capacity128={...},stats=0x7f4d0818b550)at/work/gluten/ep/build-velox/build/velox_ep/velox/common/file/File.cpp:84#7 0x00007f4c63e59837 in facebook::velox::dwio::common::ReadFileInputStream::read (this=0x7f4d081a1af0,buffers=std::vector of length73,capacity128={...},offset=4,logType=facebook::velox::dwio::common::MetricsLog::MetricsType::FILE)at/work/gluten/ep/build-velox/build/velox_ep/velox/dwio/common/InputStream.cpp:105#8 0x00007f4c6a96f918 in facebook::velox::dwio::common::DirectCoalescedLoad::loadData (this=0x7f4d0818dc30, prefetch=true)at/work/gluten/ep/build-velox/build/velox_ep/velox/dwio/common/DirectBufferedInput.cpp:321#9 0x00007f4c639451af in facebook::velox::cache::CoalescedLoad::loadOrFuture (this=0x7f4d0818dc30, wait=0x0, ssdSavable=true)at/work/gluten/ep/build-velox/build/velox_ep/velox/common/caching/AsyncDataCache.cpp:302#10 0x00007f4c6a96ee5c in operator() (__closure=0x7f4bf8be5800)at/work/gluten/ep/build-velox/build/velox_ep/velox/dwio/common/DirectBufferedInput.cpp:226

案例
1472/** 1473 * If the underlying stream supports the ByteBufferReadable interface then 1474 * this method will transparently use read(ByteBuffer). This can help 1475 * improve performance as it avoids unnecessarily copying data on to the Java 1476 * heap. Instead the data will be directly copied from kernel space to the C 1477 * heap. 1478 */1479tSizehdfsRead(hdfsFSfs,hdfsFilef,void*buffer,tSizelength)1480{1481jobjectjInputStream;1482jbyteArrayjbRarray;1483jvaluejVal;1484jthrowablejthr;1485JNIEnv*env;14861487if(length==0){1488return0;1489}elseif(length<0){1490errno=EINVAL;1491return-1;1492}1493if(f->flags&HDFS_FILE_SUPPORTS_DIRECT_READ){1494returnreadDirect(fs,f,buffer,length);1495}
1508//Parameters1509if(readPrepare(env,fs,f,&jInputStream)==-1){1510return-1;1511}15121513//Read the requisite bytes1514jbRarray=(*env)->NewByteArray(env,length);1515if(!jbRarray){1516errno=printPendingExceptionAndFree(env,PRINT_EXC_ALL,1517"hdfsRead: NewByteArray");1518return-1;1519}
http://www.jsqmd.com/news/540713/

相关文章:

  • 扎根工业一线!JBoltAI两款数智化产品解锁工厂提效新路径
  • DevEco Studio NEXT实战:如何快速定位并解决hvigor的configProps报错问题
  • 抖音无水印视频智能下载与高效管理解决方案:从技术原理到行业应用
  • 生发机构哪家好?黑奥秘AI智能检测让效果可量化 - 美业信息观察
  • 保姆级教程:在CherryStudio中为Qwen/DeepSeek模型配置专属知识库(含思源笔记API对接全流程)
  • COS化妆培训学校哪家好?零基础择校全攻略,轻松选对优质院校 - 品牌测评鉴赏家
  • 防脱生发哪家机构靠谱?黑奥秘四大自研成分提供科技支撑 - 美业信息观察
  • Qwen3-32B-Chat镜像性能实测:OpenClaw任务执行效率提升30%
  • 在遵义学美容,我跑了几家培训学校后的真实感受 - 品牌测评鉴赏家
  • 道心网络安全学习笔记系列之好靶场的信息收集2
  • CentOS 6.5 yum 安装 MongoDB 2.6及 相关配置
  • 3.26软工
  • Doris从入门到上天系列第五篇:Doris中的物化视图
  • 如何去选择品质优秀的段码屏厂家
  • Redis 异步方式与高级特性
  • AI智能体实战:从入门到企业级自动化应用
  • CentOS用yum安装 php-pecl-mongo扩展找不到mongo.so
  • docker 安装 hifone
  • Webots仿真实战:如何用C语言控制四轮小车实现自动行驶
  • 360CDN 全系列产品体验:CDN / 高防 / SDK 游戏盾横向测评
  • 一个整数可以分解为多少个质数相乘
  • Apache Tomcat 在 IDEA 中配置完整教程(手把手保姆教程)
  • MySQL 缓存策略与数据同步方案
  • 《QGIS快速入门与应用基础》240:指北针旋转与大小调整
  • 硬核深度全解:从 Netty Channel 到 OS 内核,彻底扒透 TCP 连接维持与 epoll 机制
  • 中医理疗证书正规吗?守嘉职业技能培训持证可查有保障 - 品牌排行榜单
  • 基于imfindcircles函数的圆形检测实战:从原理到MATLAB实现
  • GPIO的输出输入方式总结
  • FaceFusion项目二次开发踩坑记:深入content_analyser.py,手动修复模型依赖哈希问题
  • 在毕节学美容,我跑了三家学校后的真实感受 - 品牌测评鉴赏家