2019年5月4日のブックマーク (8件)

  • 既に起動しているプロセスをgdbで制御する:Geekなぺーじ

    デバッグやテストを行っていると、プログラムが無限ループに入り込んで返ってこないような状況が発生することがあります。 そのバグが再現の難しいものであれば「gdbを使って起動しとけば良かった。。。」というような気分になる時があります。 しかし、gdbには既に起動しているプログラムの制御を横から奪い取ってデバッグするというありがたい機能があります。 ここでは、既に起動しているプログラムをgdbでいじる方法を説明したいと思います。 実際にデバッグをする方法を説明するというよりは、gdbで動いているプロセスにアタッチする例を説明します。 その後のデバッグに関しては、いつものgdbの使い方をしていただければ大丈夫です。 とりあえずアタッチしてみる 既に起動しているプロセスをgdbを解析するのは非常に簡単です。 単にgdbでプロセスにアタッチするだけです。 gdbでプロセスにアタッチする方法は2つありま

  • ptraceシステムコール入門 ― プロセスの出力を覗き見してみよう! - プログラムモグモグ

    他のプロセスを中断せずに、その出力をミラーリングして新しくパイプで繋ぐ、そんなことはできるのでしょうか。 straceやgdbといったコマンドは一体どういう仕組みで動いているのでしょうか。 ptraceシステムコールを使い、プロセスが呼ぶシステムコールを調べて出力を覗き見するコマンドを実装してみたいと思います。 ptraceシステムコール Linuxを触っていると、いかにプロセスを組み合わせるか、組み合わせる方法をどれだけ知っているかが重要になってきます。 パイプやリダイレクトを使ってプロセスの出力結果を制御したり、コードの中からコマンドを実行して、終了ステータスを取得したりします。 プロセスツリーやプロセスグループを理解し、シグナルやnohupコマンドを使ったりします。 プロセスの扱いに慣れると疑問に持つのがstraceやgdbの仕組みです。 プロセスの実行しているシステムコールを出力し

    ptraceシステムコール入門 ― プロセスの出力を覗き見してみよう! - プログラムモグモグ
  • procfsの起源 - Plan9日記

    プロセスをファイルシステムにマッピングするprocfsはPlan 9で有名になったけど、その起源はawkのPeter J. Weinberger (pjw)にあった!という話。 今、LinuxやBSD*1で使われている形のprocfs、つまり/proc//filesという形式はPlan 9が始まりだけど、procfs自体はそれより前にUNIX V8上で実装されていた。これに関してTom Killianは1984年のUNIXで論文「Processes as Files」を発表している。この論文を読んだことはないのだが、UNIX V8のprocfsは前述のような階層構造になっている訳ではなく、1プロセス=1ファイルだったようだ。 このへんの話題を調べていたところ、9fansの「Is /proc an Plan9 invention ?」というスレッドに目が止まった。Rob Pikeは9fans

    procfsの起源 - Plan9日記
  • http://rick-brain.sblo.jp/article/57211001.html

    yaaamaaaguuu
    yaaamaaaguuu 2019/05/04
    “。”
  • Arduino IDE から、生の AVR にスケッチを書き込む方法(ArduinoIDE 1.6.4以降版。ArduinoをAVR ISPライターとして使う) - nomolkのブログ

    ※検索性向上のためタイトル変更しました(旧:Arduinoに慣れたら小さくて安くて最高な生AVRも使ってみてはいかがでしょうか) Arduinoに入ってるマイコンあるじゃないですか、あれがAVRです。逆にいうとAVRの周りにいろんな部品がついたのがArduinoです。 いろんな部品がついてるおかげでいろいろ便利になってるわけですが、普通にスイッチでLEDの制御するとかサーボ動かすだけとかの用途であれば、あのへんの部品はべつに要らないんですね。 なのでAVRだけで使いたいわけです。 上からArduino Uno、Arduino Nanoの互換品、AVRATmega88) Arduinoを買うと3000円くらいしますがAVRだけなら150~250円くらいで買えます。金額的にArduinoだと使い回し前提の使い方になりますが、AVRならマイコンごと基板にはんだ付けしちゃっても惜しくないです。

    Arduino IDE から、生の AVR にスケッチを書き込む方法(ArduinoIDE 1.6.4以降版。ArduinoをAVR ISPライターとして使う) - nomolkのブログ
  • そろそろプログラマーもFPGAを触ってみよう! - Qiita

    ##そろそろプログラマーFPGAを触ってみよう! これはbuilderscon tokyo 2016の発表スライドです。 ##自己紹介 @kazunori_279 クラウドのデベロッパー・アドボケイト エバンジェリストみたいなお仕事 コミュニティ支援:GCPUG、bq_sushi、TensorFlow User Group etc 趣味FPGA 2013年くらいからいじり始め FPGAエクストリーム・コンピューティング主宰:合計8回 ##これまでに書いたFPGA記事 はてなブックマークでバズった記事たち マイクロソフトはどうやってBingをFPGAで実装したか: 952 users ハード素人が32bit CPUFPGAで自作して動かすまで読んだのまとめ: 576 users 文字通り「ネットワークがコンピューター」な金融HFTでのFPGAの使われ方: 517 users JP M

    そろそろプログラマーもFPGAを触ってみよう! - Qiita
  • Consulを支える技術 - Carpe Diem

    概要 ConsulではSWIMやRaftといった技術を使っています。 今回はそれらを説明します。 環境 Consul 1.1.0 SWIM Gossip Protocol SWIMはGossip Protocolの一種で、主に クラスタのメンバ管理機能 メンバの障害検出機能 イベント伝播 で使われています。 こういった機能を実装しようとすると、大抵が中央集権的に情報を管理したり、各ノードがネットワーク上の全てのノードにメッセージを送信したりと言ったシステムになりますが、 Gossip Protocolは個々のノードが隣接ノードからランダムにいくつかのノードを選択し情報を伝えます。 図で表すと以下のように比較できます。 ref: RRG: redundancy reduced gossip protocol for real-time N-to-N dynamic group communi

    Consulを支える技術 - Carpe Diem
  • Raft

    2. 自己紹介  久保田展行 (@nobu_k)  Preferred Infrastructure America, Inc. 取締役  日の NG ワード「いつアメリカ行くの?」  MessagePack for C,C++ メンテナ  分散システム、 DB 、検索エンジン  最近 golang に夢中 2 3. 今日の話: Raft  Raft とは  複製されたログを管理するためのコンセンサス ( 合意 ) アルゴリズ ム  Raft はわかりやすさを重視して作られた  既存のアルゴリズムは難しすぎて正しく実装するのが困難  もしくは、難しい部分を簡単にしようとして安全ではなくなったり  この先生きのこるには分散システムの理解が必須  コンセンサスは安全な分散システムを構築する上で必須のトピック  ツールとして使うにしても、中身や特性は理解しておくべき

    Raft