云网牛站
书籍下载:从Windows转向Linux教程,Linux菜鸟及练成Linux高手
所在位置:首页 >

Linux编程 第3页

  • 开发Linux调试器教程

    以下为开发Linux调试器教程的相关章节,一共十二章,从最基础的讲起。如果你正在学习开发一个Linux调试器,那就从一至十的顺序阅读本教程。 教程目录 开发一个Linux调试器(一):

  • 开发一个Linux调试器(十):高级主题

    我们终于来到这个系列的最后一篇文章!这一次,我将对调试中的一些更高级的概念进行高层的概述:远程调试、共享库支持、表达式计算和多线程支持。这些想法实现起来比较复杂,

  • 开发一个Linux调试器(九):处理变量

    变量是偷偷摸摸的。有时,它们会很高兴地呆在寄存器中,但是一转头就会跑到堆栈中。为了优化,编译器可能会完全将它们从窗口中抛出。无论变量在内存中的如何移动,我们都需要

  • 开发一个Linux调试器(八):堆栈展开

    有时你需要知道的最重要的信息是什么,你当前的程序状态是如何到达那里的。有一个 backtrace 命令,它给你提供了程序当前的函数调用链。这篇文章将向你展示如何在 x86_64 上实现堆栈

  • 开发一个Linux调试器(七):源码级断点

    在内存地址上设置断点虽然不错,但它并没有提供最方便用户的工具。我们希望能够在源代码行和函数入口地址上设置断点,以便我们可以在与代码相同的抽象级别中进行调试。 这篇文

  • 开发一个Linux调试器(六):源码级逐步执行

    在前几篇博文中我们学习了 DWARF 信息以及它如何使我们将机器码和上层源码联系起来。这一次我们通过为我们的调试器添加源码级逐步调试将该知识应用于实际。 系列文章索引 1. 准备

  • 开发一个Linux调试器(五):源码和信号

    在上一部分我们学习了关于 DWARF 的信息,以及它如何被用于读取变量和将被执行的机器码与我们的高级语言的源码联系起来。在这一部分,我们将进入实践,实现一些我们调试器后面会

  • 开发一个Linux调试器(四):Elves和dwarves

    到目前为止,你已经偶尔听到了关于 dwarves、调试信息、一种无需解析就可以理解源码方式。今天我们会详细介绍源码级的调试信息,作为本指南后面部分使用它的准备。 系列文章索引

  • 开发一个Linux调试器(三):寄存器和内存

    上一篇博文中我们给调试器添加了一个简单的地址断点。这次,我们将添加读写寄存器和内存的功能,这将使我们能够使用我们的程序计数器、观察状态和改变程序的行为。 系列文章索

  • 开发一个Linux调试器(二):断点

    在该系列的第一部分,我们写了一个小的进程启动器,作为我们调试器的基础。在这篇文章中,我们会学习在 x86 Linux 上断点是如何工作的,以及如何给我们工具添加设置断点的能力。

  • 开发一个Linux调试器(一):准备环境

    任何写过比 hello world 复杂一些的程序的人都应该使用过调试器(如果你还没有,那就停下手头的工作先学习一下吧)。但是,尽管这些工具已经得到了广泛的使用,却并没有太多的资源

  • 每个安卓开发初学者应该了解的12个技巧

    距离安迪鲁宾和他的团队着手开发一个希望颠覆传统手机操作模式的操作系统已经过去 12 年了,这套系统有可能让手机或者智能机给消费者以及软件开发人员带来全新的体验。之前的智

  • 如何分析博客中最流行的编程语言

    想法来源 我一直在想,各种各样的博客每天到底都有多少页面浏览量,以及在博客阅读受众中最受欢迎的是什么编程语言。我也很感兴趣的是,它们在谷歌的网站排名是否与它们的受欢

  • 深入的讲解flatpak

    引言 前面我们介绍过如何 在优麒麟和银河麒麟社区版上构建snap/flatpak包 ,今天我们来更深入的认识下flatpak。 Flatpak(前世为xdg-app) 是一种用于构建,分发,安装和运行应用程序的技术。

  • 在优麒麟和银河麒麟社区版上构建Linux跨平台的snap/flatpak包

    Snap和Flatpak是新一代的Linux打包格式,它们通过将软件和依赖同时安装在一个沙盒中,使得采用snap和flatpak的应用,可以跨越不同的发行版,降低了开发和维护成本,同时大大提高了系统

  • 编程中的“末行效应”

    我研究过数百个因拷贝-粘贴导致的错误。可以肯定的是,程序员常常会在一大段代码的最后一段里犯错。好像还没有任何编程书讨论过这种现象,因此我决定自己写点什么。我称之为末

  • 使用GDB命令行调试器调试C/C++程序

    没有调试器的情况下编写程序时最糟糕的状况是什么?编译时跪着祈祷不要出错?用血祭召唤恶魔帮你运行程序?或者在每一行代码间添加printf(test)语句来定位错误点?如你所知,编写

  • 使用Nemiver调试器来调试C/C++程序

    简介Nemiver Nemiver 是一款基于 GTK+ 的用于C/C++程序的图形化的独立调试器,它以GDB作为其后端。最令人赞赏的是其速度和稳定性,Nemiver是一个非常可靠,具备许多优点的调试工具。 Nemi

  • 如何像NASA顶级程序员一样编程——10条重要原则

    你知道 NASA 顶级程序员如何编写关键任务代码么?为了确保代码更清楚、更安全、且更容易理解,NASA 的喷气推进实验室制定了 10 条编码规则。 NASA 的开发者是编程界最有挑战性的工作

  • 程序员应该避免的5种代码注释

    你有没有这样的经历:别人审查过你的代码之后给出的注释,你认为是没有必要的?注释代码是为了提高代码的可读性,目的是为了能让其他人更容易理解你的代码。 我特别讨厌这5种

  • 点评五款用于Linux编程的内存调试器

    作为一个程序员,我知道我肯定会犯错误怎么可能不犯错!程序员也是人啊。有的错误能在编码过程中及时发现,而有些却得等到软件测试了才能显露出来。然而,还有一类错误并不能

  • 几条编程的小贴士

    这篇文章我已经构思了几个星期了,现在决定发表出来。一起分享编程的细节。 1.编码之前想一想 用10分钟,20分钟甚至30分钟的时间来想想你需要什么,想想什么样的设计模式(如果有

  • Linux与Windows的设备驱动模型对比:架构、API和开发环境比较

    设备驱动是操作系统的一部分,它能够通过一些特定的编程接口便于硬件设备的使用,这样软件就可以控制并且运行那些设备了。因为每个驱动都对应不同的操作系统,所以你就需要不

  • Python程序员常犯的7个错误(新手)

    错误1、函数的默认参数使用不当 Python允许我们为参数指定一个默认参数值,这是很好的特性。但是当默认参数是mutable类型时,就容易忽略下面的问题: def foo(bar=[]): # bar是一个默认参

  • Linux/Unix下Python代码调用C/C++共享库

    Linux/Unix下的共享库扩展名为.so文件,和Windows的*.dll文件类似。共享库中一般包含通用的函数和类。当需要使用共享库中的功能时,它会被系统加载到内存中,它只会被加载一次。 对于

  • 我是如何用10天自学编程,改变一生的?

    我是霖哥,一个因兴趣入行的商学院毕业的程序员。最近有不少人,来问我,想学编程,但是又不知怎么开始。所以,我想把我8年前影响我一生的10天自学编程的经历,毫无保留的分享

  • Linux Shell脚本系列:开始上手

    这是一篇关于 Linux Shell 脚本的初级学习文章。通过本系列文章希望帮助 Linux 初学用户快速开始上手编写 Shell 脚本,能够利索的对脚本进行测试和使用。 在接下来的首篇文章中,我们将

精选文章
热门文章
在疫情期间,可下载这10本免费的Linux电子书籍