首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Linux+Windows: 程序崩溃时,在 C++ 代码中,如何获取函数调用栈信息

一、前言 二、Linux 平台 三、Windwos 平台 一、前言 程序在执行过程中 crash 是非常严重的问题,一般都应该在测试阶段排除掉这些问题,但是总会有漏网之鱼被带到 release 阶段。...因此,程序的日志系统需要侦测这种情况,在代码崩溃的时候获取函数调用栈信息,为 debug 提供有效的信息。...这篇文章的理论知识很少,直接分享 2 段代码:在 Linux 和 Windows 这 2 个平台上,如何用 C++ 来捕获函数调用栈里的信息。 二、Linux 平台 1....free(symbols); oss << std::endl; std::cout << oss.str(); // 打印函数调用栈信息 } 三、Windwos 平台 在...利用以上几个神器,基本上可以获取到程序崩溃时的函数调用栈信息,定位问题,有如神助! ----

5.9K20

软件测试「 高频面试题 」建议收藏!

空指针值,数组越界,内存不足,CPU满负荷(现在手机基本都是8核CPU,基本不会出现CPU满负荷的情况) 11.APP常见崩溃原因?...内存管理:可能内存过低,或者是授权的内存位置的使用可能会导致App失败; 5.用户过多:连续数量过多可能会导致App崩溃; 6.代码错误:没有经过测试的新功能,可能会导致App在生产环境中失败; 7.第三方服务...adb install(apk的文件路径) 安装软件到手机或者模拟器 adb uninstall(包名) 卸载手机或模拟器上的某款软件 adb devices 查看与当前电脑连接的移动设备 adb ,adb...adb shell dumpsys cpuinfo 查看手机cpu的使用情况 adb shell getprop|findstr dalvik 手机系统自己运行的内存使用 15.说几个monkey指令?...如果需要参数化,先在本地创建一个TXT文档,把参数填写到文档里面,在jmeter中添加一个csv文件设置,填写好TXT文档的路径,然后在请求参数中使用json提取器把token值关联出来 然后在下单接口中使用

92310
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    android题目 AliCrackme分析

    ,双击off_628C查看v6的值 发现有个aWojiushidaan值,输入到密码框试试看 发现仍验证码校验失败,需要动态调试查看真实的值 IDA动态调试,要先吧android_server...,查看地址000011A8 然后D7F1D6BC+000011A8=D7F1E864 经计算可知,函数的绝对地址就是D7F1E864在IDA中 使用快捷键G跳转到地址的位置,也就是要调试的函数位置...按F2打断点,按F8继续运行(F8单步调试不进入函数F7单步调试进入函数 然后发现app直接崩溃了,应该是有反调试 修改应用为debuggable ro.debuggable app全局可调试...来实现,当应用被调试时应用内存里的TracerPid字段就不为0,只要是不为0的时候,就会直接的退出程序,达到反调试的目的。...按F5,查看v6的值发现是aiyou,bucuoo 在输入框中输入

    80340

    推荐一款好用的APP性能测试工具——Monkey!

    手机设备上安装一个模拟器手机执行 monkey+参数 (手机模拟器可以通过百度搜索或360手机助手搜android terminal,安装即可,可以在模拟器的命令行中输入mokey +参数) (4)....,当应用程序崩溃或发生失控异常时,monkey将继续运行直到计数完成。...,找最后一个ActivityManager 方法二:直接查看手机中存在的apk包,进入adb shell 命令后---手机的data/data文件夹--ls查看所有包名 找到要测apk的包名 这种方法需要...语句实例: adb shell monkey —ignore-timeouts 崩溃问题:在日志中搜索“CRASH” 正常来说,如果在 Monkey 执行的阶段,出现了崩溃...在Monkey中,可以通过 —ignore-crashes 来忽略掉异常崩溃。

    6K21

    APP测试工程师岗位面试题

    需求:全程跟进需求变更,与产品无缝沟通,在测试阶段有需求变更要第一时间了解改动范围,如果影响版本的质量要说明风险,评估需求是否必须更改以及是否影响发布上线的时间线 计划制定:规划测试项目需要的功能开发和自动化开发人员比例...不显示位置:发送到朋友圈动态不显示位置 选择对应位置:搜索支持,自动定位,手动编辑 点击取消,返回上一级页面 谁可以看 设置公开:所有朋友可见 设置私密(仅自己可见):自己查看朋友圈-可见,好友查看朋友圈...,苹果手机端,pad版(主流)功能界面显示是否正常 2.多个平台朋友圈展示数据是否一致 7.安全性测试 发送朋友圈时,文本输入脚本代码,是否出现异常 8.性能测试 服务器型测试:可通过loadrunner...:开启服务 adb push:从电脑复制到手机 adb pull:从手机复制到电脑 adb shell top –m 2 –n 1:查看进程(-m 2 显示进程2行的内容,-n1 显示一次) adb shell...Python测试社区博主介绍:7年测试人,某大厂高级系统测试工程师,坐拥1.5W粉丝守护,感谢大家一直以来的支持,个人IP信条:分享真实生活,做个有温度的测试

    54320

    用例和bug描述规范参考

    一一 BUG描述基础知识 Bug标题中需包含Bug的具体位置并以【】标注 举例:【模块-子模块-页面】XXXXXXXXXXXX Bug标题中切勿出现错别字 错误示例: 奔溃(崩溃),电击(点击),登陆,...示例:只有在使用附件中的图片(大图片:60M)时,会出现此Bug。...示例3:APP崩溃,手机崩溃,系统崩溃,APP重启,手机重启此类表述混乱。 描述Bug过程中“预期结果”与“实际结果”必须有条理且符合逻辑。 Crash的Log取的时间尽量不能超过10分钟。...执行用例过程中需严格按照测试用例描述执行,规定的前提条件、输入数据、步骤,检查实际结果,必须保证测试结果的真实性。...执行用例过程中发现问题时,记录完整的信息,如:测试手机型号、操作系统版本、测试网络、标准的佐证文件(视频、图片、Log文件)。

    1.4K51

    【Android 逆向】Android 进程注入工具开发 ( SO 进程注入环境及 root 权限获取 | 进程注入时序分析 )

    root 权限获取 ---- SO 注入的前提必须有 root 权限 , 有了 root 权限后 , 才能调用 ptrace 相关函数 ; SO 注入环境有两种情况 , Android 模拟器 或 真实手机...; 这里特别推荐使用 雷电模拟器 进行逆向操作 , 在真机上会出现各种问题 ; 使用 Android 模拟器 , 如 雷电模拟器 , 使用 ld 工具查看日志 , 查看日志命令为 : ld.exe logcat...上述命令需要进入雷电模拟器安装目录执行 , ld.exe 在雷电模拟器安装目录的根目录中 ; 如果使用 Android 真机 , 则直接使用 adb logcat 命令查看日志即可 ; 二、进程注入时序分析...系统中调试器进程内存流程 | 编译内存调试动态库以及调试程序 ) 博客中 , 编译过该动态库 , 调试目标进程时 , 需要将该动态库注入 目标进程 ; 然后调用 libbridge.so 动态库中的...; 设置 ESP 栈内存地址 : 将 ESP 寄存器指向申请的内存中 ; 收回控制权 : 执行完毕后 , 返回到 0 地址 , 令目标进程崩溃 , 调试进程收回控制权 ; 参考之前涉及到 SO 注入的流程

    1.4K00

    扒虫篇-崩溃日志解读及Crash收集

    通过Xcode查看设备崩溃信息 除了上面的系统分析工具来进行分析,如果是我们自己直接使用手机连接崩溃或者崩溃之后连接手机,选择window-> devices -> 选择自己的手机 -> view device...Symbolicatecrash Symbolicatecrash是Xcode自带的一个分析工具,可以通过机器上的崩溃日志和应用的.dSYM文件定位发生崩溃的位置,把crash日志中的地址替换成代码相应位置...手机连上 itunes,在itunes中打开 手机的应用, 文件->添加到资料库 把桌面是上的那个应用添加进入,再同步更新到测试机器中即可。 ?...: 将崩溃信息持久化在本地,下次程序启动时,将崩溃信息作为日志发送给开发者。...当有崩溃发生时,会给注册的邮件发送崩溃统计,方便查看。 在crash信息收集时, 如果正在进行debug调试,是收集不到信息的。

    2.9K10

    Android 移动应用性能优化 之 友盟

    由主线程绘制时,在子线程中进行改变时会报错,所以子线程可不可以刷新view呢?...我之前遇到的问题就是我在启动页用了一个高清图,然后在我的手机上正常运行,然后在一个读者的手机上就直接闪退了。报错的图如下:   从这个图能看出什么内容呢?   ...  自定义异常接口   在开发中通常有自己异常try catch,那么也可以将catch中的异常通过友盟的接口传到后台去,然后开发者去查看。...下面就可以进行相关的日志查看了,那么先来写一个bug吧。   比如我在App的启动页的onCreate中写下这样的代码。...而这个内存快照,就是方便你查看报错时的内存使用情况,可以酌情进行优化。   最后这个自定义字段,很明显就是在代码中写的一个崩溃的回调。   这说明我自己写的日志也上传了。

    42910

    iOS如何获取崩溃日志

    前言 在日常测试iOS中会经常遇到App崩溃的情况,然后给研发提bug。如果就提bug就有一两句话描述,研发很难精准排查问题,所以作为测试人员需要提供崩溃日志或者崩溃堆栈辅助研发排查问题。...iOS获取日志方法 Xcode工具 先来介绍一种最简单的方式使用Xcode工具方式,手机和mac连接后,打开Xcode选择window进入Organizer,在Organizer窗口上,选中Devices...image 在左侧的导航面板上,选中View Device Logs,如下图所示: Logs菜单就可以看到mac曾经同步过的iOS设备的崩溃日志。...ideviceinstaller是libimobiledevice中的一个命令行工具,ideviceinstaller可以实现安装app,卸载app查看当前电脑连接的设备等操作,和Android的adb...获取设备名称 idevicename idevicecrashrepor崩溃日志 libimobiledevice中的idevicecrashreport工具可以导出真机crash日志,工具位置在tools

    3.3K20

    Android性能优化(一)

    Android 的两种崩溃: Java 崩溃 Native 崩溃 简单来说,Java 崩溃就是在 Java 代码中,出现了未捕获异常,导致程序异常退出。...被 low memory killer 杀掉、从系统的任务管理器中划掉等 ANR 我们可以在应用启动的时候设定一个标志,在主动自杀或崩溃后更新标志,这样下次启动时通过检测这个标志就能确认运行期间是否发生过异常退出...Native 崩溃。需要观察 signal、code、fault addr 等内容,以及崩溃时 Java 的堆栈。关于各 signal 含义的介绍,你可以查看崩溃信号介绍。...如果做到了上面说的这些,以上大部分的崩溃应该都能解决或者规避,大部分的系统崩溃也是如此。当然总有一些疑难问题需要依赖到用户的真实环境,这些需要具备类似动态跟踪和调试的能力。...点击Record后 [170ab3f5189df885] 可以记录一段时间内内存分配情况,可查看各对象分配大小及调用栈、对象生成位置 Memory Analyzer(MAT) 比Memory Profiler

    2.7K20

    如何在iPhone设备中查看崩溃日志

    使用克魔助手查看iPhone设备中的崩溃日志 奔溃日志分析 总结 摘要 本文介绍了如何在iPhone设备中查看崩溃日志,以便调查崩溃的原因。我们将展示三种不同的方法,包括使用克魔助手查看崩溃日志。...内存故障:如果你的系统中的RAM出现故障,iPhone设备将难以从内存中检索数据。每当iPhone设备试图从内存中恢复数据时,RAM故障可能导致系统崩溃或冻结。...使用克魔助手查看iPhone设备中的崩溃日志 克魔助手是一款为苹果手机iOS应用开发设计的辅助工具,提供了app实时日志、奔溃日志分析等功能,有助于高效地开发和调试iOS应用程序。...在事件日志中,你可以捕获警报类型、警告类型、信息类型、错误类型、失败审计类型、成功审计类型、通知类型、调试类型等信息。其中,错误型、警告型和信息型是事件日志中最常见的三种类型。...PS:数据连接时,先将 iPhone 通过数据线连接上电脑,iOS 手机上一定要信任这次连接,(开启WiFi调试时,无需数据线) 开 ​ 总结 本文介绍了如何在iPhone设备中查看崩溃日志。

    46610

    常见的adb指令

    /**********************2016年4月23日 更新**************************************/ 知乎:在windows的cmd执行adb shell...在adb shell input 有以下参数,但却不知作用和用法,查资料也只弄明白了 input keyevent 的作用和用法,其它参数有没有人来解释下?...此x、y坐标对应的是真实的屏幕分辨率,所以要根据具体手机具体看,比如你想点击屏幕(x, y) = (250, 250)位置: adb shell input tap 250 250 3....swipe 250 250 300 300 /**********************************************************/ 1.adb devices 列出设备,插上真实手机如果不显示...10.mkmdcard 20m d:/sdcard.img 创建sdcard 以上这些指令可以做一个豌豆荚类似的管理软件了,如果ecplise老是崩溃也可能和这些管家软件有冲突

    90820

    Android 移动应用性能优化 之 友盟

    由主线程绘制时,在子线程中进行改变时会报错,所以子线程可不可以刷新view呢?...我之前遇到的问题就是我在启动页用了一个高清图,然后在我的手机上正常运行,然后在一个读者的手机上就直接闪退了。报错的图如下:   从这个图能看出什么内容呢?   ...  自定义异常接口   在开发中通常有自己异常try catch,那么也可以将catch中的异常通过友盟的接口传到后台去,然后开发者去查看。...下面就可以进行相关的日志查看了,那么先来写一个bug吧。   比如我在App的启动页的onCreate中写下这样的代码。...而这个内存快照,就是方便你查看报错时的内存使用情况,可以酌情进行优化。   最后这个自定义字段,很明显就是在代码中写的一个崩溃的回调。   这说明我自己写的日志也上传了。

    61230

    针对Skype的欺骗&攻击研究

    在进行了完整的测试之后,我们发现其信息功能中并没有任何防止信息篡改的安全保护机制,因此这里可能会存在欺骗攻击的风险。在本文发稿时,所有提到的漏洞仍然存在。...伪造的URL将显示在信息的底部位置。为了克服这个问题,只需创建一个真实的子域。比如说:google.image.view.evil.com ?...让任意用户的Skype崩溃 在修改请求主体中“content”值时,我不小心放置了太多的标签,结果导致了对话两端(攻击者和目标用户)的Skype发生了崩溃,并导致聊天内容永久性的无法访问。...这将导致Web端和桌面客户端的Skype都发生崩溃。不过,手机端的Skpye应用程序不会崩溃。...使用Skype的域名进行网络钓鱼攻击 当你在聊天框发送一个文件时,它首先被上传到Skype的服务器上,然后聊天中的每个用户都可以访问该文件。

    99610

    如何打造一款高质量的Android移动应用

    简单来说,Java崩溃就是在Java代码中,出现了未捕获异常,导致程序异常退出,Java崩溃相对来说比较容易捕获。...但是Native崩溃会比较麻烦,Native崩溃一般是在c/c++代码中访问了非法地址,也可能是地址对齐出现了问题,或者发生了程序主动abort,这些都会产生signal信号,导致程序异常退出。...通过dump_sysm工具可以生成发生崩溃so文件的符号表,通过mindump_stackwalk工具可以生成上报native崩溃日志的调用栈,结合符号表就能定位到发生崩溃的位置。...,展示完毕有remove掉,同时在闪屏的2秒时间内进行首页网络数据的缓存,同时采用viewstub形式对activity_main的布局进行懒加载,防止首页过于复杂耽误view的解析时间。...通过systrace的System Service类型可以查看System Server的CPU工作情况,在app启动过程中,尽量不要做系统调用,比如PackageMangerService操作,Binder

    1.3K40

    谷歌Agent首次发现真实世界代码漏洞!抢救全球数亿设备,或挽回数十亿美元损失?

    要知道,这不仅仅是一个崩溃的测试用例,它是AI首次在真实世界的软件中找到未知的、可利用的内存漏洞。...用LLM在真实世界中「捉虫」 随着LLM代码理解和一般推理能力的提高,谷歌研究者一直在探索这些模型如何在识别和演示安全漏洞时,重新人类安全研究人员的方法。...随后,他们调整了prompt,为AI Agent同时提供了提交信息和代码变更,并要求它审查当前代码库(在HEAD位置)中可能仍未修复的相关问题。...它提供了查看特定实体(如函数、变量等)源代码的功能,并能识别函数或实体被引用的位置。...特别有趣的是,一旦程序崩溃,模型会在解释问题时表现得更为出色——在生成根因分析(root-cause analysis)和完整崩溃报告时,我们可以看到AI Agent清晰地构造了一个测试用例来触发特定的已识别边缘案例

    6000

    《信息安全技术 智能手机预装应用程序基本安全要求(征求意见稿)》发布

    《安全要求》明确了可卸载范围,指出除系统设置、文件管理、多媒体摄录、接打电话、收发短信、通讯录、浏览器、应用商店等直接支撑操作系统运行或实现智能手机基本功能所必须的基本功能应用程序外,智能手机中其他预装应用程序均应可卸载...; 在不影响智能手机安全使用的情况下,卸载预装应用程序应将相关程序文件及数据完全删除,用户选择保留的用户数据、配置文件除外; 应确保已被卸载的预装应用程序在智能手机操作系统升级时不被恢复,同时应保证升级后的预装应用程序仍满足本文件...智能手机生产企业应确保用户选择不同意时不影响智能手机基本功能的使用,并在征求同意时将该情况明确告知用户。...《安全要求》“第三方预装应用程序个人信息安全审核”提出,智能手机生产企业应在预装第三方应用程序前,对第三方预装应用程序的个人信息处理规则进行审核,包括但不限于审核以下内容的真实性和合理性: 应用程序基本信息...更多内容请点击阅读原文查看《信息安全技术 智能手机预装应用程序基本安全要求(征求意见稿)》全文。 消息来源:全国信息安全标准化技术委员会

    31020

    【游戏】卡顿原因解读及性能分析工具介绍(内附操作步骤)

    想要流畅的用手机玩游戏,就需要解决好手机的发烫和卡顿等涉及到游戏体验的诸多问题。对于广大玩家们而言,影响游戏体验的一大元凶,就当属卡顿了,特别是在玩动作游戏时,出现卡顿现象简直让人崩溃。...通常大部分原因是由于当前画面复杂度增加,手机无法按时完成每秒N帧的渲染任务。以和平精英为例,如下图设置项,流畅自适应打开后会在帧率波动过大时自动降低画质提升流畅度。...帧率从低、中、高、超高到极限分别是20、25、30、40、60帧。画质包括流畅、均衡、高清和HDR高清。当前大部分手机都可以支持到高清,甚至HDR高清,超高清尚未开放。...如下图所示 对于60帧游戏,每16.6ms要完成一帧的渲染,存储在帧缓存中,若这一帧未在当前VSYNC周期到来前完成,则需要等待下一个VSYNC周期,就导致前后两个不同画面间隔了至少2帧时间2...10.在Texture View窗口通过控制单个drawcall执行,查看每个draw的绘制内容,输入和输出等。 11.在mesh View窗口查看mesh数据和模型。

    2.5K10
    领券