原创 用戶自定義gdb命令的Python實現

使用gdb調試的時候,人們往往會希望有一些命令能實現自己特殊的需求,但實際上gdb本身並沒有提供這樣的命令。 對這些用戶需求,其實常可以使用gdb的Python API(或其他語言的API)來實現。 首先,Python API的總

原创 用gdb腳本進行自動化調試

本文首先介紹用於自動化調試的gdb腳本的基本語法和基本用法,然後給出程序實例和調試實例。 在使用gdb調試程序的時候,如果想讓調試自動化,該怎麼辦呢? 比如,想關閉 confirm,關閉 pagination,打開 print p

原创 shell數組的一些總結

shell數組的一些總結 # 數組定義法-1 myarray=(1 2 3 4 5) # 數組定義法-2 myarray myarray[0]="A" myarray[1]="B" # 獲取數組的長度 ${#myarray[@

原创 簡介C++11中的左值、純右值、將亡值

在c++11以後,表達式按值類別,可分爲3種: 左值(left value,lvalue) 將亡值(expiring value,xvalue) 純右值(pure rvalue,pralue) 另, 泛左值(generaliz

原创 Linux下動態鏈接庫的2種鏈接方式

Linux下動態鏈接庫的2種鏈接方式 方式一 通過 dlopen, dlsym, dlerror, dlclose 在代碼中直接打開與使用動態鏈接庫 dlopen 用於打開動態鏈接庫,返回句柄 dlsym 使用dlopen

原创 幾款常用的二進制文件分析及問題定位的工具

幾款常用的二進制文件分析及問題定位的工具 具體使用,還要仔細看其文檔。 fuser fuser displays the PIDs of processes using the specified files or file

原创 Python又戰Shell -實現幾個對弈記錄統計功能

2020開年第一篇 在之前的一篇博客中,我們對比了C++和Python的開發效率和運行效率。而對比Python和Bash shell,則是無解。因爲shell可以實現的複雜功能較少而能利用的各種工具又較繁雜,所以基本不具備可比性。

原创 手動釋放Linux系統的內存

先來看看 CentOS 8 系統中 free 命令的輸出。當然,它只是用來查看系統內存使用情況的,並非用來釋放的。 # free -mh total used free

原创 一段轉換自Windows Epoch以來的秒數爲正常時間的Python代碼

Windows Epoch指的是 1601-01-01 00:00:00. 在有些場合下,需要將自這個時間點以來的秒數轉換爲正常時間。以下是一段完成此任務的Python代碼。 # coding=utf-8 import sys

原创 C語言中的setjmp和longjmp

在C語言中,goto語句只能在一個函數內實現跳轉,而不能在函數間進行跳轉。如果希望在函數間跳轉,可以使用 setjmp 和 longjmp 函數。 Linux 會把進程的上下文保存在 task_struct 結構體中,切換時直接恢

原创 Python - 實現數組相減

問題描述: 有2個數組如下 a = [3,3,3,4,4,4,5,6,7] b = [3,3,4,4] 第1題:從數組a中刪除所有在數組b中出現過的元素。對於上例來說,a刪除結束應該等於 [5, 6, 7]. 第2題:實現 c =