はてなブックマークアプリ

サクサク読めて、
アプリ限定の機能も多数!

アプリで開く

はてなブックマーク

  • はてなブックマークって?
  • アプリ・拡張の紹介
  • ユーザー登録
  • ログイン
  • Hatena

はてなブックマーク

トップへ戻る

  • 総合
    • 人気
    • 新着
    • IT
    • 最新ガジェット
    • 自然科学
    • 経済・金融
    • おもしろ
    • マンガ
    • ゲーム
    • はてなブログ(総合)
  • 一般
    • 人気
    • 新着
    • 社会ニュース
    • 地域
    • 国際
    • 天気
    • グルメ
    • 映画・音楽
    • スポーツ
    • はてな匿名ダイアリー
    • はてなブログ(一般)
  • 世の中
    • 人気
    • 新着
    • 新型コロナウイルス
    • 働き方
    • 生き方
    • 地域
    • 医療・ヘルス
    • 教育
    • はてな匿名ダイアリー
    • はてなブログ(世の中)
  • 政治と経済
    • 人気
    • 新着
    • 政治
    • 経済・金融
    • 企業
    • 仕事・就職
    • マーケット
    • 国際
    • はてなブログ(政治と経済)
  • 暮らし
    • 人気
    • 新着
    • カルチャー・ライフスタイル
    • ファッション
    • 運動・エクササイズ
    • 結婚・子育て
    • 住まい
    • グルメ
    • 相続
    • はてなブログ(暮らし)
    • 掃除・整理整頓
    • 雑貨
    • 買ってよかったもの
    • 旅行
    • アウトドア
    • 趣味
  • 学び
    • 人気
    • 新着
    • 人文科学
    • 社会科学
    • 自然科学
    • 語学
    • ビジネス・経営学
    • デザイン
    • 法律
    • 本・書評
    • 将棋・囲碁
    • はてなブログ(学び)
  • テクノロジー
    • 人気
    • 新着
    • IT
    • セキュリティ技術
    • はてなブログ(テクノロジー)
    • AI・機械学習
    • プログラミング
    • エンジニア
  • おもしろ
    • 人気
    • 新着
    • まとめ
    • ネタ
    • おもしろ
    • これはすごい
    • かわいい
    • 雑学
    • 癒やし
    • はてなブログ(おもしろ)
  • エンタメ
    • 人気
    • 新着
    • スポーツ
    • 映画
    • 音楽
    • アイドル
    • 芸能
    • お笑い
    • サッカー
    • 話題の動画
    • はてなブログ(エンタメ)
  • アニメとゲーム
    • 人気
    • 新着
    • マンガ
    • Webマンガ
    • ゲーム
    • 任天堂
    • PlayStation
    • アニメ
    • バーチャルYouTuber
    • オタクカルチャー
    • はてなブログ(アニメとゲーム)
    • はてなブログ(ゲーム)
  • おすすめ

    WWDC25

『tanakamura.github.io』

  • 人気
  • 新着
  • すべて
  • デバッガ

    3 users

    tanakamura.github.io

    これまで何度も使ってきたgdb、つまりデバッガだが、これがどのように動いているかを見ていこう。 "デバッガ" とはなんだろうか。 "デバッガ" というと、バグを取ってくれるようなツールに聞こえるが、みなさんご存知のとおり、デバッガはプログラマのかわりにバグを取ってくれるわけではない。 実際のデバッガの動作は実行中のプログラムの状態を見れるツール、つまり "プログラムの状態ビューワ" とでも言ったほうが、現実とあっているだろう。 個人的には'デバッガ"という名称は実態とあってない、とは思うが、この章では、慣習にしたがって、プログラムの状態を調査、変更するツールのことを"デバッガ"と呼び、 そのデバッガを使って実際に何かをすることを"デバッグ"と呼ぶ。 また、デバッグされるプログラムの対象を"デバッギ(debugee)"と呼ぶ。 この章では、まず、デバッガが必要とする基本的な操作について説明し

    • テクノロジー
    • 2021/07/16 08:15
    • japanese
    • linux
    • リンカ

      278 users

      tanakamura.github.io

      ついに、リンカの説明をするときが来た。 ここに至るまでに、何度「リンカのところで説明する」と書いただろうか? ここまで読んできた人ならば、 リンカというものが、なにやら色々やっているんだな、というのはわかってきたのではないかと思う。 筆者が常々思っていることのひとつに、「C言語に関する書籍は、リンカの説明をおざなりにしすぎだ」というのがある。 多くのC言語の書籍は、 コンパイラがソースコードをアセンブリコードに変換します アセンブラがアセンブリコードを機械語に変換します リンカが機械語をリンクして実行ファイルが作られます と、いう解説がなされがちである。この説明を見たら、多くの人が、「え、リンクってなんですか?」と、思うに違いない。 アセンブラには、「人間が読めるニーモニックを、機械が読める機械語に変換する」みたいな、最低限の説明が付くものの、 リンカの説明は「リンクをします」のひとことだ

      • テクノロジー
      • 2020/07/12 21:08
      • c
      • あとで読む
      • linux
      • linker
      • ld
      • gcc
      • プログラミング
      • compiler
      • x86_64 プログラミング入門

        9 users

        tanakamura.github.io

        レジスタと算術演算 好きなエディタを開いて、add.s というテキストファイルを作り、中に以下のように書く x8664_asm_language/add.s .globl main main: add $1, %rax ret 続いて、gcc を使って、これを実行ファイルに変換する。 $ gcc add.s $ ls add.s a.out 間違いがなければ、同じディレクトリに、a.out という実行ファイルができているはずだ。 次に、gdb に a.out を指定して起動する。(デバッガは、CPUやメモリの状態を調べるのに、非常に有用なツールである。必要な使いかたは都度説明するが、可能ならば色々な使いかたを知っておくことをおすすめする) $ gdb a.out GNU gdb (Ubuntu 7.11.1-0ubuntu1~16.5) 7.11.1 Copyright (C) 2016

        • テクノロジー
        • 2020/05/29 13:52
        • PIC,PIE,shellcode,ASLR

          6 users

          tanakamura.github.io

          戻る おまけ : PIC,PIE,shellcode,ASLR 最後に、知っておくといい話題として、 昔からよく使われるPICと呼ばれるプログラムの形式について説明し、 メモリ破壊バグが引き置こすshellcodeの紹介、 それからPICを応用してshellcodeの問題を緩和する手法である ASLR について説明しておこう。 PIC (Position Independent Code:位置独立コード)とは、どんなアドレスに配置されても動作する機械語コードのことだ。 ここまで説明してきた機械語プログラムは、PICではなかった。例えば、次のELF実行ファイルを考えよう。 pic_pie/no_pic.s .globl _start .text _start: incl data0 mov $60, %rax syscall .data data0: .long 8 $ as -o no_p

          • テクノロジー
          • 2020/04/15 20:15
          • x86_64 機械語入門

            5 users

            tanakamura.github.io

            さて、アセンブリ言語について説明したので、せっかくなので機械語についても説明しておこう。 機械語(マシン語、machine language)は、アセンブルが終わったあとの、バイト列のことを指す。 正直な話をすると、機械語の知識が役立つ場面はあまりない。 アセンブリ言語の知識は、色々な場面で役立つ実用的で重要な知識であることは間違いないが、 それと比べると、機械語への理解は、そんなに必須ではなくて、知ってたからと言って辛い場面でサバイブしやすくなるということは特にない。 自分でアセンブラやリンカ、デバッガを作る人には重要な知識だが、OSを書く場合ですら機械語の知識が役立つ場面はほとんど無いだろう。 それでもせっかくなので解説しておこう。 正しく理解できれば、「機械語も単なるバイト列で特別なことなんか何もない」という感覚が身に付けられるはずだ。 まあよくわからなければ飛ばしてもらって構わない

            • テクノロジー
            • 2019/06/10 15:07
            • CPU
            • コンピュータ
            • 実践的低レイヤプログラミング

              719 users

              tanakamura.github.io

              はじめに 学校で習わないが(習う学校もある)、現実に必要になるプログラミング技術に、低レイヤプログラミングなどと呼ばれるものがある 厳密な定義は聞いたことがないし、おそらく存在しないとは思うが、大体のみんなの共通認識として、 「高級プログラミング言語を使わないプログラムを書き、OSで抽象化されないデバイスの機能を使う」といったような認識があると思う。 筆者の経験から言わせてもらうならば、低レイヤプログラミングに関する知識は、プログラミングにおいてあらゆる場面で、常に、少しずつ役立てられる知識だと言えると思う。 普段はRubyやPHPなどを書いてる人であったとしても、メモリが足りなくなった場合や、デバッガを使っている場合、性能が足りなくなった場合など、 厳しい環境におかれた時に低レイヤプログラミングに関する知識が必ず役に立つ場面が来ると信じている。 また、役に立つかどうかは置いておいても、「

              • テクノロジー
              • 2019/01/04 11:53
              • プログラミング
              • あとで読む
              • 低レイヤ
              • linux
              • cpu
              • OS
              • プログラム
              • programming
              • メモリ
              • 言語
              • 実践的低レベルプログラミング

                1037 users

                tanakamura.github.io

                はじめに 学校で習わないが(習う学校もある)、現実に必要になるプログラミング技術に、低レイヤプログラミングなどと呼ばれるものがある 厳密な定義は聞いたことがないし、おそらく存在しないとは思うが、大体のみんなの共通認識として、 「高級プログラミング言語を使わないプログラムを書き、OSで抽象化されないデバイスの機能を使う」といったような認識があると思う。 筆者の経験から言わせてもらうならば、低レイヤプログラミングに関する知識は、プログラミングにおいてあらゆる場面で、常に、少しずつ役立てられる知識だと言えると思う。 普段はRubyやPHPなどを書いてる人であったとしても、メモリが足りなくなった場合や、デバッガを使っている場合、性能が足りなくなった場合など、 厳しい環境におかれた時に低レイヤプログラミングに関する知識が必ず役に立つ場面が来ると信じている。 また、役に立つかどうかは置いておいても、「

                • テクノロジー
                • 2018/10/04 01:58
                • プログラミング
                • あとで読む
                • programming
                • linux
                • gdb
                • CPU
                • c
                • 技術
                • 知識
                • assembly

                このページはまだ
                ブックマークされていません

                このページを最初にブックマークしてみませんか?

                『tanakamura.github.io』の新着エントリーを見る

                キーボードショートカット一覧

                j次のブックマーク

                k前のブックマーク

                lあとで読む

                eコメント一覧を開く

                oページを開く

                はてなブックマーク

                • 総合
                • 一般
                • 世の中
                • 政治と経済
                • 暮らし
                • 学び
                • テクノロジー
                • エンタメ
                • アニメとゲーム
                • おもしろ
                • アプリ・拡張機能
                • 開発ブログ
                • ヘルプ
                • お問い合わせ
                • ガイドライン
                • 利用規約
                • プライバシーポリシー
                • 利用者情報の外部送信について
                • ガイドライン
                • 利用規約
                • プライバシーポリシー
                • 利用者情報の外部送信について

                公式Twitter

                • 公式アカウント
                • ホットエントリー

                はてなのサービス

                • はてなブログ
                • はてなブログPro
                • 人力検索はてな
                • はてなブログ タグ
                • はてなニュース
                • ソレドコ
                • App Storeからダウンロード
                • Google Playで手に入れよう
                Copyright © 2005-2025 Hatena. All Rights Reserved.
                設定を変更しましたx