做了若干年后台开发(之前做电信领域),大致说一下常见的开发心得和调试手段。使用互联网这么多年,收获的很多,总结的很少。本着互联网的精神,希望可以帮到互联网另一端的你。...由于本人是做 C 语言的开发,陈述的经验也是 C 常用的调试手段。 调试这个蛋疼的事情,困扰着无数程序猿。很难有人保证自己写的代码一行错误都没有,有问题你就要查。怎么查?...开发的程序大致要经过两个阶段,最终才可以上线发布。 功能开发阶段 本阶段的主要目标是根据业务要求,开发程序。仅仅是 coder,仅仅是写 if else 吗?写程序真的是这样吗?...其实作为开发人员,测试驱动开发(TDD)很好思考问题的思路。也许有人听过,也许有同学用过,如果感觉使用不好的兄弟,我可以告诉大家:应该是测试场景 + 场景驱动开发。...其实,上面说了这么多只是告诉大家调试好的前提,和调试的初衷。 一个优秀的猿,你会发现他有很多调试技巧,也就是很多调试手段获取自己想得到的信息。信息获取的多,自然就很容易清楚程序本身的意图。
做了若干年后台开发(之前做电信领域),大致说一下常见的开发心得和调试手段。使用互联网这么多年,收获的很多,总结的很少。本着互联网精神,希望可以帮到互联网另一端的你。...由于本人是做 C 语言的开发,陈述的经验也是 C 常用的调试手段。 调试很麻烦,困扰着无数程序员们。很难有人保证自己写的代码一行错误都没有,有问题你就要查。怎么查?...开发的程序大致要经过一下两个阶段,最终才可以上线发布。 功能开发阶段 本阶段的主要目标是根据业务要求,开发程序。仅仅是 coder,仅仅是写 if else 吗?写程序真的是这样吗?...其实作为开发人员,测试驱动开发(TDD)很好思考问题的思路。也许有人听过,也许有同学用过,如果感觉使用不好的兄弟,我可以告诉大家:应该是测试场景 + 场景驱动开发。...其实,上面说了这么多只是告诉大家调试好的前提,和调试的初衷。 一个优秀的程序员,你会发现他有很多调试技巧,也就是很多调试手段获取自己想得到信息。信息获取的多,自然就很容易清除程序本身的意图。
pycharm是一个非常强大的python开发工具,现在很多代码最终在线上跑的环境都是linux,而开发环境可能还是windows下开发,这就需要经常在linux上进行调试,或者在linux对代码进行编写...具体实现在windows上远程linux开发和调试的代码步骤如下: 配置远程linux主机信息 选择Tools--Deployment--Configuration ? 这里选择SFTP就可以 ?...配置远程linux的python ? ? ? 到此为止配置的内容完成,下面开始测试使用 测试用在远程linux写代码和调试 在测试之前需要开启一个功能:关于自动同步 ? ...这个功能开启之后,自己在本地新建的文件都会自动同步到远程linux服务器上 这样我们新建一个测试文件,例子如下: ?...这样我们新建的文件就会直接同步到linux上,并且我们直接可以在本地运行,当我们看输出的时候就可以看到其实是在远程执行linux的代码
-a 列出所有符号(这将会把调试符号也列出来。...默认状态下调试符号不会被列出) -l 列出符号在源代码中对应的行号(指定这个参数后,nm将利用调试信息找出文件名以及符号的行号。...strip(去除二进制文件里面包含的符号) 用途: 可执行程序减肥(通常只在已经调试和测试过的生成模块上,因为不能调试了) 反编译、反跟踪 readelf(显示目标文件详细信息) nm...ldd(显示程序需要使用的动态库和实际使用的动态库) # ldd /bin/ls linux-gate.so.1 => (0xbfffe000) librt.so.1...libc.so.6 (0xb7dc3000) libpthread.so.0 => /lib/libpthread.so.0 (0xb7dab000) /lib/ld-linux.so
前言 Linux常用命令中有一些命令可以在开发或调试过程中起到很好的帮助作用,有些可以帮助了解或优化我们的程序,有些可以帮我们定位疑难问题。本文将简单介绍一下这些命令。...ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux...查看程序依赖库--ldd ldd cmdTest linux-vdso.so.1 => (0x00007ffc8e548000) libc.so.6 => /lib/x86..._64-linux-gnu/libc.so.6 (0x00007f0621931000) /lib64/ld-linux-x86-64.so.2 (0x00007f0621cf6000)...--gdb gdb是一个强大的调试工具,但这里仅介绍两个简单使用示例。
在Linux下搭建Swift开发调试环境 文本介绍如何在Linux下配置一个的Swift开发环境(可用于生产),文中所记录的各个配置环节不仅适用于Linux,也同样适用于在macOS下配置Visual...但转过头来思考,虽然Publish完美地支持Linux,但开发者能否像在mac上一样方便的进行开发调试呢?...之前使用Vapor的时候,曾通过Docker在Ubuntu上安装过Swift,不过代码是在mac上调试的。我也十分好奇,在2021年Swift到底在Linux下的开发环境如何?...本文的目标是在Linux上搭建一个可供生产标准的Swift开发调试环境。使用者将获得一个支持代码高亮、自动补全、定义跳转、断点调试、代码美化、代码静态扫描、跨操作系统平台配置的综合开发体验。...结语 希望本文能够帮助更多的朋友在Linux上使用Swift进行开发。
USB-CAN一般Windows端的资料会多些,有做好的上位机和Qt、C#、MATLAB等二次开发接口,但Linux的支持只有一个测试样例,需要自己去写;SocketCAN对全平台支持都很好,除了Windows...CAN认识 CAN 是控制器局域网络(Controller Area Network)的简称,是实现汽车所有或部分部件之间通信的中枢神经系统,由以研发和生产汽车电子产品著称的德国 BOSCH 公司开发并最终成为国际标准...对于没有SocketCAN设备的童鞋来说,ICSim为我们研究开发提供了一种可能,同时可以练习can-utils操作,另外,使用模拟器可以隔离硬件环境,防止硬件受损。...can-utils 是一套 Linux 特有的实用工具,它可以让 Linux 与车辆上的 CAN 网络进行通信,为了发送、接收和分析 CAN 数据包,需要安装 CAN utils: sudo apt-get...Wireshark Wireshark是一个网络测试工具,支持Linux。
GDB调试 GDB是GUN发布的一个强大的程序调试工具,也是Linux程序员不可或缺的一大利器。 安装GDB 注意安装你所需要的版本。...gcc -g hello.c -o hello 启动GDB调试。 gdb hello GDB和Shell一样支持命令补全。。...s ---- 监视变量 print 调试程序最基本的需求就是监视变量的值,可以使用print命令,缩写为p,显示指定变量的值。...bt ---- 退出GDB quit 调试完毕后,使用quit命令,缩写为q,退出gdb程序。 q
Coredump 调试 Coredump是什么?...Linux环境下,当程序异常退出(发生段错误)时,会产生一个core文件,该文件记录了程序运行时的内存,寄存器状态,堆栈指针,内存管理信息还有各种函数调用堆栈信息等,我们可以理解为是程序工作当前状态存储生成的一个文件...---- 如何调试 编译的时候添加-g选项,增加调试信息。 gdb program core_file **示例:**一个会产生异常退出的程序,非法指针访问。...执行调试命令,结果如下图所示。
以前在IDE调试的话,就很容易设置断点,查看参数值,到了 linux 下就变得比较麻烦了。 目前觉得比较重要的就是: 1.设置断点: gdb命令 break,也可以用 b 。...取消的话 undisplay 编号 4.列出信息 gdb命令 info,info break, info display 5.调试 单步调试 n,进入函数的单步调试 s,跳到下一个断点 c 6.读取文件
App开发调试 一、Windows端 1,安装java 选择 Windows x64 2,安装Android Studio 用andriod自己的开发调试工具会出现代码热更新失败,安卓adb冲突,所以推荐第三方模拟器...然后启动模拟器,重启HbuildX软件,等待一会点击运行>运行带手机或者模拟器 这时候就能看到模拟器的设备了,看不到的话需要关闭HbuildX,先开模拟器再打开HbuoldX编辑器 然后点击运行就可以调试了...二、mac端安装xCode,安装苹果模拟器,在ios模拟器里面选择手机样式 三、真机调试 1,安卓连接数据线之后开启开发者模式,不打开开发者识别不到安卓手机 2,苹果手机下载iTunes 官方说下载低版本的
利用KGDB双机调试内核 1.1. 环境 1.2. 配置内核编译环境 2. 参考 双机调试Linux内核环境配置。...利用KGDB双机调试内核 环境 centos 7 VMware 全程使用root用户 配置内核编译环境 这种方式调试内核需要两台机器,一台用来运行Linux内核,另一台对内核进行调试。...可以开两个Linux系统的虚拟机;也可以在物理机系统是linux上面装虚拟机,然后虚拟机运行一个linux;再就是买开发板来调试内核。以下是在windows上开两个虚拟机的流程描述。...在https://www.kernel.org/ 下载想调试版本的内核代码(可以下载tarball格式)。...(我测试ttyS0不行,改成ttyS1可以了) 参考 http://blog.nsfocus.net/gdb-kgdb-debug-application/ 在VMware中用Kgdb调试linux内核
在Linux上通常使用gdb命令行调试,但该方式调试不太直观,且命令行长时间不用,容易忘记,不如GUI直观和容易上手,下面介绍基于GUI的方式调试Linux。...一.Linux调试GUI方案简介 1) Visual studio 远程调试Linux 在VS2015版本以后Visual studio就支持Linux的编译和调试。...使用熟悉的windows界面开发和调试Linux,极大的提高了开发效率,可以广泛应用的Linux服务器开发和嵌入式Linux开发。 ...2) 基于eclipse 本地调试Linux 因为eclipse是跨平台的,安装一个带GUI的linux系统,就可以像VS一样开发和调试Linux 3) 基于QtCreator...本地调试Linux 因为QtCreator是跨平台的,安装一个带GUI的linux系统,就可以像VS一样开发和调试 4) 基于eclipse 远程调试Linux
mtrace 在linux下开发应用程序,用C/C++语言的居多。内存泄露和内存越界等内存错误,无疑是其中最头疼的问题之一。glibc为解决内存错误提供了两种方案: 一种是hook内存管理函数。...Linux 平台上的C语言调试工具!...从事Linux应用开发一年多了,感觉很不规范很山寨,准备系统地学习一下下linux开发,首先从调试工具的学习开始,以下是从网上看到的一篇linux调试工具介绍,准备好好学习这些工具的使用。...XBuildStudio是专为提升UNIX/LINUX的程序的开发而设计的在WINDOWS平台上调试UNIX/LINUX程序的开发工具,操作方式类似VC的环境,有效提升您的工作效率. ?...更多uuSpy信息 Linux内核测试工具 CrackerJack Crackerjack Project 是由中日韩三方共同参加开发,该项目主要目的是为Linux内核提供自动化的回归测试功能
This GDB was configured as "--host=x86_64-linux-gnu --target=arm-linux-android"....(gdb) rockchip rk3399调试vmlinux ..../prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/bin/aarch64-linux-android-addr2line -f -e.../prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/bin/aarch64-linux-android-addr2line -f -e...kernel/drivers/iommu/rockchip-iommu.c:1005 (discriminator 2) weiqifa@dev:~/rk3399_7in1$ RK平台tombstone调试
前言 在前面的博客【Linux】编译器-gcc/g++使用已经分享了关于编译器的使用,而编译器的使用离不开调试,这次就来分享一下Linux调试器-gdb使用。 2....调试前准备 要调试就得先有代码,先用C语言写一段简单的代码myprocess.c,再写好Makefile: myprocess.c代码: 1 #include 2 3...测试用的是debug,可以被跳绳,而开发出来的release版本,是不可以调试的。 在debug版本中,编译器形成可执行程序的时候,会给可执行程序添加调试信息。...使用 3.1 进入gdb 默认系统中会安装gdb,使用方法就是gdb后面直接加上调试的可执行程序名: gdb myprocess-debug 就会默认进入到调试模式 想要退出就直接输入quit或者...这个run的功能就类似于VS里面的F5,直接运行不调试。
常用的开发工具 文本编辑器:(轻量级) sublime notepad++ editplus IDE(集成开发环境 功能强大) webstrom intellj IDEA elipse...写注释说明用的 Ctrl+Shift+A:选择当前标签前后,修改标签用的 F11:全屏 Shift+F11:全屏免打扰模式,只编辑当前文件 安装package control,在插件库中寻找插件 页面调试谷歌浏览器...f12 审查元素 elments是html的调试可以删除添加节点 styles样式,可以修改样式
前端开发调试知识 参加字节跳动的青训营时写的笔记。这部分是秃头披风侠老师讲的课。 1....前端 Debug 特点 多平台:浏览器、NodeJs、小程序 多环境:本地开发环境、线上环境 多工具:Chrome devTools、Whistle 多技巧:Console、BreakPoint、sourceMap...debugger 或代码预览区域点击行号设置断点 代码执行到断点处,代码暂停执行 展开 Breakpoints 列表可以查看断点列表,勾选可以激活对应断点 鼠标放在变量上可以查看变量的值 在调试器...Watch 可以添加监听变量 Scope:展开 Scope 可以查看作用域列表(包含闭包) Call Stack:展开 Call Stack 可以查看当前 JavaScript 代码的调用栈 压缩后的代码调试...:通过 Source Map 映射源码实现调试,Source Map 文件不跟着部署上线,从而实现安全调试。
linux有诸多优秀的工具帮助我们分析服务器各项性能指标和协助开发调试工作。下面只列举比较基础的命令,且一般是集成在linux环境中而不需再次安装的命令。...同时,linux page cache的大小是4KB,在non-direct IO 的情况下,IO都是先写到linux的page cache里。...E、开发测试相关 常用工具:readelf、hexdump/xxd、od、objdump、nm、telnet/nc readelf:以可读方式展示elf文件格式,包括(目标文件/可执行文件/共享库)...F、跟踪调试相关 常用工具:strace、ltrace、dtrace/ftrace、blktrace strace: 跟踪运行进程的系统调用耗费时间、出错信息、参数传递等。...It can create and summarize full stack traces of processes on Linux.
背景 程序的发布方式有两种,debug模式和release模式 Linux gcc/g++出来的二进制程序,默认是release模式 要使用gdb调试,必须在源代码生成二进制程序的时候, 加上-g选项...初次使用时,需要先安装: sudo yum install -y gdb 使用 注意使用gdb时,调试的是debug模式。...在调试过程中是可以修改变量的值的,用set var 修改变量。通常用来判断循环条件,这样做可能会导致最终的值不正确。
领取专属 10元无门槛券
手把手带您无忧上云