分类 ubuntu 下的文章

vscode 通过数据断点分析segmentation fault


vscode 通过数据断点分析segmentation fault通常地,程序异常,我们借助vscode在ubuntu主动调试,程序会自动在异常代码位置停下来,但是异常分析通常不会这么简单,而是一连串连锁反应。这里尝试分析,因为程序异常,非法写入了一段正常内存,从而导致多个链路之后异常发生。而对于此问题,最常使用的调试手段就是添加数据断点。通常直接在某段代码位置添加的代码为函数断点,程序会自动在该位置停下来。同样地,我们可以添加条件断点:当某个判断条件(例如,变量值为真)满足的时候;当某段代码连续执行N次的时候;当某个变量(内存)被读写的时候;如上前两个条件断点,vsocde 里面的c/...

socat


目录 [隐藏]I. 地址规范地址关键字地址选项II. 样例远程访问目标机器的unix-domain socket监听unix socket重定向串口 socathttp://www.dest-unreach.org/socat/。提示:如下翻译来自 man 1 socat,未完待续……概述socat 是一个命令行工具,用以建立一个双向字节流交换数据。该字节流又可以被构造成不同地址类型,大量的地址选项也同样可以被作用于该流,因此socat非常强大。filan 是一个打印文件描述符的工具,已经被重构用以调试socat,当然,也可以另做它用。procan 是一个打印进程信息的工具...

在linux 下通过vscode调试elf可执行文件


how to use vscode debug elf ?elf 是linux 下可执行可链接文件(executable and linkable format)。通过gcc/make 我们很容易编译出我们需要的elf文件,借助vscode可以在ubuntu图形化调试该程序,再也不用在gdb命令操作了。如下是elf文件结构,包含文件头(elf header)和代码、数据区索引表(program header table、section header table)和对应代码区、数据区。明白了如上文件结构,还需要具体解答如下疑惑。什么文件可以被调试?通过file命令对比可以知道用以调试的文件...

Ubuntu wireless-ac 9560 驱动异常


Ubuntu 19.10 Intel wireless-ac 9560 driver exception重启电脑后发现wifi不能使用了,网络设置里面提示未发现网络适配器。电脑比较新,之前安装ubuntu18.10 低版本kernel 版本就发现不识别wifi设备,更新到ubuntu19.10 后正常,不过正常安装后也反复重启过使用了一段时间。Detected Intel(R) Wireless-AC 9560, REV=0x354;Ubuntu 19.10 5.3.0-40-generic;小米笔记本pro 15;排查第一时间排查dmesg 发现有iwlwifi 内核模块报错。主动搜...

开源homekit adk 测试


目录 [隐藏]I. contextII. dependencyIII. compileIV. testV. troubleshootingsclang: Command not foundfatal error: 'dns_sd.h' file not foundldd errorNo setup code found in key-value store.开源homekit adk 测试摘要 :本文尝试体验苹果新鲜开源的homekit adk,实现在ubuntu成功编译运行后在iPhone 家 实现设备的添加、控制,以及siri的语音控制。由amazon、apple、goo...

在ubuntu上使用onedrive


目录 [隐藏]I. dependencesII. installIII. configIV. troubleshootingsError reading ngrok APIonedrivesdk install failedImportError: cannot import name 'loosebidict' from 'bidict' 在ubuntu上使用onedrive自从使用了onedrive过后就像发现宝贝似得,跨机器自动同步文件很是方便,特别是一些正在进行调试笔记、开发文档。所以在ubuntu也马上考虑使用onedrive。https://github.c...

在局域网建立.local域名


目录 [隐藏]I. hostnameII. hostsIII. mdnsIV. avahi ubuntu setup .local domain in lan需要理解linux下面的几个概念。I. hostname主机名,默认保存在/etc/hosname,可以通过命令hostname查看和更改。$hostname #查看 hachi-jay $sudo hostname -F /etc/hostname #编辑`/etc/hostname`后应用该命令更改。II. hosts本地域名文件,配置后再本机...

thingsboard 开发环境建立


目录 [隐藏]I. dependencylinuxII. installIII. troubleshootingmaven:Some files do not have the expected license headermaven:Could not resolve dependencies for project org.thingsboard:application:jar:2.4.1Failed to run task: 'npm install' failedjava:变量 log找不到符号java:类org.thingsboard.server.common.msg....

linux gtk 编程


目录 [隐藏]I. design notesII. troubleshootscannot open display gtk programTop 5 Programming Languages For Developing Linux Desktop Applicationshttps://www.gtk.org/Overview of GTK+ and its LibrariesGTK+ 3 Reference Manual安装开发包和下载源码$sudo apt-get install libgtk-3-dev $sudo apt-get source libgtk-3...

跨平台更新制作rootfs


目录 [隐藏]I. qemu-debootstrapII. arm64 debian jessieIII. chroot 跨平台更新制作rootfs在x64( pc /ubuntu 18.10 )跨平台编译arm64 的debian rootfs完整镜像,通常地,更新rootfs都是直接放在目标机上面,制作更新好rootfs后再拷贝回编译机。对于目标机平台,通常拷贝rootfs需要非运行时环境,所以例如在emmc的rootfs需要通过sd卡系统启动去执行拷贝操作。同时拷贝/压缩还需要关心文件的uid、gid、用户名、组名、执行权限。稍不注意,功亏一篑。这里通过介绍qemu...