2016-03-27から1日間の記事一覧

関数呼び出し時のスタック操作

大雑把なメモ。 大事なレジスタがip、sp、bp。(GDBではrip、rsp、rbpになっている。) ip(インストラクションポインタ)は次に実行する命令列のアドレスを格納している。 sp(スタックポインタ)は今のスタックフレームの上のほうを指している。(多分。) bp(フレ…

GDB

GDBの基本的な操作メモ。 サンプル用のプログラム。(sample.c) #include <stdio.h> int sum(int a, int b) { int c; c = a + b; return c; } int main(int argc, char** argv) { int a = 10; int b = 20; int c; c = sum(a, b); printf("%d\n", c); } 準備 デバック用</stdio.h>…

メモリセグメント

メモリセグメントのメモ。 プロセスが扱うメモリ領域はその用途によって複数のセグメントに分けられている。 テキスト(コード)セグメント データセグメント bssセグメント ヒープセグメント スタックセグメント (上のセグメントほど、メモリアドレスが小さい…