コグノスケ


link 未来から過去へ表示(*)  link 過去から未来へ表示

link もっと前
2024年9月9日 >>> 2024年8月27日
link もっと後

2024年9月9日

GDBの便利コマンド

目次: Linux

GDBは便利ですが、少し使わないでいるとあっという間にコマンドを忘れます。便利&使うコマンドをメモしておきます。

handle - シグナルの扱いを変更する

GDBはデバッグ中のプログラムがシグナルを受け取ると実行停止してどうするか聞いてきます。この機能は便利ですが、シグナルをプロセス間で送りあって動くようなプログラムだと頻繁に停止して鬱陶しいです。

handleコマンドでSIGUSR1を非停止、非表示、対象に渡す設定にする
(gdb) handle SIGUSR1 nostop noprint

Signal        Stop      Print   Pass to program Description
SIGUSR1       No        No      Yes             User defined signal 1

こんなときはhandleコマンドで無視したり非表示にできます。私はあまり使ったことがないのですが、nopassにするとシグナルをデバッグ対象に渡さないようにできるようです。

dump - メモリの内容をファイルにセーブ

指定したメモリの内容をファイルにコピーします。個人的には間違えやすいコマンドで、3番目の引数のmemoryをいつも打ち忘れます。

0x80000000のメモリをfoo.binにセーブ
(gdb) dump binary memory foo.bin 0x80000000 0x80001000

意外と長くなります。

restore - ファイルの内容をメモリにロード

指定したファイルの内容をメモリにコピーします。個人的には名前間違え率No.1なコマンドで、loadコマンドと間違えます。

foo.binを0x80000000にロード
(gdb) restore foo.bin binary 0x80000000

なんでloadじゃないんだよ?と思いますが、loadは別の意味のコマンド(デバッグ対象プログラムをメモリにロードする、ただコピーするだけではなくプログラムヘッダを考慮する)に使われているためです。

symbol-file - デバッグシンボルをロード

実行可能ファイルからデバッグシンボルを読み出すコマンドです。-oオプションにより、シンボルのアドレスにオフセットを加えることもできます。

foo.elfのシンボルアドレスに0x80000000オフセットをかけてロード
(gdb) symbol-file foo.elf -o 0x80000000

通常のデバッグではGDBが実行ファイルをロードするのであまりお世話になりませんが、組み込み開発では割とお世話になるコマンドです。ROM上に既にロード済みのバイナリのデバッグシンボルを後から読みたいとき、PIEのプログラム(アドレスが0スタートになっている)をデバッグするときに便利です。

編集者:すずき(2024/10/25 02:22)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



2024年9月6日

ベレッタ92が壊れた

目次: 射的

ガスガンのベレッタ92(正確な商品名は東京マルイ U.S. M9ピストル)が壊れました。デコッキングすると100%暴発します。怖い故障モードですね……。それはさておいて週1回の使用とはいえ、2年半も使えたのは割と良い方なんですかね?

初めはスライド側セーフティー周りの故障かと思いましが、どうやらフレーム側のデコッキング機構がダメになったようです。ほぼ新品のM9A1(※)のスライドと載せ替えても暴発しています。これはもうダメそうだなー……。

修理も考えましたがやめました。私は特に改造せずほぼノーマルのまま使っているので、新しい銃に入れ替えても特に問題ないのです。てな訳で、新しくもう1丁購入しました。

(※)東京マルイM9A1のこと(M9A1の製品リンク)です。M9A1もベレッタ92ベースの銃で、スライドはU.S. M9ピストルと機構的に互換性があります。スライドを入れ替えても正常に動作します。

編集者:すずき(2024/11/25 02:58)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



2024年8月31日

Microsoftマウスが壊れた

3年前くらいに購入した(2021年3月6日の日記参照)Microsoft Basic Optical Mouseが壊れました。今までのマウスは左ボタンが壊れて勝手にダブルクリック病になっていましたが、今回はセンターホイールが壊れて下に回しているのに上にスクロールされたり、上に回しているのに下にスクロールされたりする症状が出ています。初めて出会う症状ですが、ダブルクリック病と同じくらいイライラします。


Microsoft Basic Optical Mouse分解

3年使ったものなので内部は埃だらけで若干お見苦しいですが、捨てる前に分解して内部の写真を撮りました。ボタンと逆側にあるねじ1本で留まっているだけで、分解はとても簡単です。内部の基板は極めてシンプルです。片面が茶色(レジストなし)、逆側が緑色(レジストあり)のちょっと変わった基板でした。両面レジストが普通だと思っていましたが、コストカットのためですかね?

さて次のマウスは何にしようかな〜と言いたいところですが、実は同じマウスがもう1つあるので引き続き2個目のMicrosoft Basic Optical Mouseを使います。

間違って2個買ったのではなく、あまりに安かったのですぐ壊れるかと思い2個買いました。でも蓋を開けてみれば3年も使えたし杞憂でしたね。1年あたりにすれば300円くらいで驚異のコストパフォーマンス、素晴らしい製品だと思います。Microsoftはこの価格で儲かっているのでしょうか……?

編集者:すずき(2024/09/01 15:01)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



2024年8月27日

Milk-V Jupiterが届いた

目次: RISC-V

Milk-V Jupiterが届きました。お値段が非常に安かったのもあってM1/K1両方購入しました。注文したのは2か月くらい前で、何も音沙汰がなかったので忘れかけていましたが無事に届いて良かったです。

Jupiterの見た目はPCのMini-ITX規格マザーボードとほぼ一緒です。動かすためにはATX電源が必要なので別途用意してください。SoCはSpacemiT Key Stone M1/K1で、CPUは独自コアのX60を8コア搭載、RVA22のほかRVV 1.0にも対応しています。いいですね〜。


Milk-V Jupiter (Key Stone M1)


Milk-V Jupiter (Key Stone K1)

Key Stone M1とKey Stone K1の違いがよくわかりませんが、とりあえずM1はCPU 1.8GHz駆動でK1は CPU 1.6GHz駆動の違いがあるらしいです(Jupiter - Milk-V)。わかりやすい違いは見た目ですね。M1はヒートスプレッダが付いていて銀色のパッケージ、K1は樹脂のみで黒色のパッケージです。

SpacemiTのドキュメントは一応ある(Documentation - SpacemiT)のですが、ダウンロードできない形式になっていて不親切ですね……。イケてない。

Ubuntuのインストール

起動方法はSDカード、SSD、eMMCと複数ありますが簡単な方法はSDカードからの起動です。Milk-Vの公式サイトにある通りにインストールすれば良いです(Milk-V Jupiter Install OS Image - Milk-V)。OSイメージはUbuntuとFedoraとSpecemiT独自(?)のBianbu OSが用意されていますので、お好みで使うと良いと思います。私は使い慣れているUbuntuにしました。

SDカードに書き込むツールもRaspberry Piのときにお世話になったBalena Etcherを使います。なぜかUbuntuのバージョンは23.10(Mantic Minotaur)です。LTSではないUbuntuはサポート期限が短い(24.04リリースまでの9か月程度)ので、長期間の運用には向いていません。普通の人はしないと思いますけども。

CoreMarkを実行

新しいボード購入時の恒例、CoreMarkを実行します。まずはCPUの動作周波数を確認します。

CPU動作周波数の確認
katsuhiro@milkv-jupiter:~$ sudo cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq

1800000

katsuhiro@milkv-jupiter:~$ sudo cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_min_freq

614400

katsuhiro@milkv-jupiter:~$ sudo cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq

1800000

CPUの動作周波数は0.614GHz〜1.8GHzのようですが、curは1.8GHz固定で変動している様子はありません。バグってる?固定?まあいいや、とりあえずこの値を信じましょう。

最初はシンプルにオプションOfastを試します。

CoreMark結果(GCC 13.2.0 -Ofast)
2K performance run parameters for coremark.
CoreMark Size    : 666
Total ticks      : 17322
Total time (secs): 17.322000
Iterations/Sec   : 6350.305969
Iterations       : 110000
Compiler version : GCC13.2.0
Compiler flags   : -Ofast -g
Memory location  : Please put data memory location here
                        (e.g. code in flash, data on heap etc)
seedcrc          : 0xe9f5
[0]crclist       : 0xe714
[0]crcmatrix     : 0x1fd7
[0]crcstate      : 0x8e3a
[0]crcfinal      : 0x33ff
Correct operation validated. See README.md for run and reporting rules.
CoreMark 1.0 : 6350.305969 / GCC13.2.0 -Ofast -g / Heap

6350.305969 / 1800 = 3.52CM/MHzですね、正直言ってあまり速くないです。Cortex-A53より上、Cortex-A55より下といったところです。

RISC-Vは標準的な命令以外にも拡張命令が多数定義されています。なかでもbit manipulation命令はこの手のベンチマークには結構効き目がありますので、有効にして測ってみます。Zbc拡張は有効にしたら逆に遅くなったので外しています。

CoreMark結果(GCC 13.2.0 -Ofast、bit manipulation拡張ON)
2K performance run parameters for coremark.
CoreMark Size    : 666
Total ticks      : 16201
Total time (secs): 16.201000
Iterations/Sec   : 6789.704339
Iterations       : 110000
Compiler version : GCC13.2.0
Compiler flags   : -Ofast -g -march=rv64gc_zicsr_zifencei_zmmul_zba_zbb_zbs
Memory location  : Please put data memory location here
                        (e.g. code in flash, data on heap etc)
seedcrc          : 0xe9f5
[0]crclist       : 0xe714
[0]crcmatrix     : 0x1fd7
[0]crcstate      : 0x8e3a
[0]crcfinal      : 0x33ff
Correct operation validated. See README.md for run and reporting rules.
CoreMark 1.0 : 6789.704339 / GCC13.2.0 -Ofast -g -march=rv64gc_zicsr_zifencei_zmmul_zba_zbb_zbs / Heap

6789.704339 / 1800 = 3.77CM/MHzです、だいぶ改善されてCortex-A55と同程度になりました。それでも速いとは言い難いですけど……。X60コア用にコンパイルするときはbit manipulation系の拡張命令は必須ですね。

編集者:すずき(2024/10/25 02:20)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



link もっと前
2024年9月9日 >>> 2024年8月27日
link もっと後

管理用メニュー

link 記事を新規作成

<2024>
<<<09>>>
1234567
891011121314
15161718192021
22232425262728
2930-----

最近のコメント5件

  • link 26年1月23日
    すずきさん (01/29 09:48)
    「おおー、そんな昔からなんですね。歴史感じ...」
  • link 26年1月23日
    hdkさん (01/27 19:53)
    「#! はUNIX v8からだったってWi...」
  • link 24年12月9日
    すずきさん (01/18 15:45)
    「Thank you for your i...」
  • link 24年12月9日
    Up2Uさん (01/15 12:57)
    「Hi I also find the p...」
  • link 25年12月18日
    すずきさん (12/23 23:51)
    「良く見たらksys_read()でfil...」

最近の記事20件

  • link 26年2月23日
    すずき (02/27 03:32)
    「[ドラクエ1リメイク、トロフィーコンプ] 目次: ゲームSteamでドラクエ1&2 HDリメイクを購入したまま完全放置でドラク...」
  • link 21年12月28日
    すずき (02/27 03:27)
    「[ゲーム - まとめリンク] 目次: ゲームNintendo DSを買ったパネルでポンDS最近の朝はパネポンDS聖剣伝説DSチ...」
  • link 26年2月15日
    すずき (02/27 01:50)
    「[ドラクエ3リメイク、トロフィーコンプ] 目次: ゲームSteamでドラクエ1&2 HDリメイクを購入したのですが、完全にほっ...」
  • link 26年2月11日
    すずき (02/14 13:38)
    「[shebangの役割 - シェル側] 目次: Linux前回(2026年1月29日の日記参照)、スクリプトの先頭(例えばシェ...」
  • link 23年4月10日
    すずき (02/14 03:04)
    「[Linux - まとめリンク] 目次: Linuxカーネル、ドライバ関連。Linux kernel 2.4 for ARMが...」
  • link 23年5月15日
    すずき (02/09 22:27)
    「[車 - まとめリンク] 目次: 車三菱 FTO GPX '95の話。群馬県へのドライブ1群馬県へのドライブ2将来車を買い替え...」
  • link 26年2月8日
    すずき (02/09 22:27)
    「[車の修理……のはずが雪] 目次: 車以前(2025年11月21日の日記参照)、ジャガーさんの左前...」
  • link 26年2月9日
    すずき (02/09 22:10)
    「[SSLに対応 - Let's Encrypt] 目次: 自宅サーバー一昨年(2024年2月2日の日記参照)にJPRSドメイン...」
  • link 23年6月1日
    すずき (02/09 22:09)
    「[自宅サーバー - まとめリンク] 目次: 自宅サーバーこの日記システム、Wikiの話。カウンターをPerlからPHPに移植日...」
  • link 24年2月2日
    すずき (02/09 22:09)
    「[SSLに対応 - JPRSドメイン認証型SSL] 目次: 自宅サーバー今更感がありますが、このサイトもSSL対応にしました。...」
  • link 26年2月1日
    すずき (02/02 23:17)
    「[エンジン出力特性は三者三様] 目次: 車Automobile Catalogue(リンク)という素敵なサイトがありまして、各...」
  • link 21年5月7日
    すずき (02/02 19:31)
    「[LLVM - まとめリンク] 目次: LLVM一覧が欲しくなったので作りました。LLVMの本を買ったClangのmain関数...」
  • link 26年1月19日
    すずき (02/02 19:31)
    「[LLVMインストール] 目次: LLVMLLVMの公式サイト(リンク)にある手順そのものなんですけど、いつもググっていて面倒...」
  • link 26年1月29日
    すずき (02/02 19:22)
    「[shebangの役割 - カーネル側] 目次: Linux前回(2026年1月23日の日記参照)はshebang(ファイル先...」
  • link 26年1月23日
    すずき (01/27 02:47)
    「[shebangの役割] 目次: Linuxスクリプトの先頭(例えばシェルスクリプトなど)に書く"#!〜"から始まるおまじない...」
  • link 26年1月21日
    すずき (01/22 02:55)
    「[日本のテレビメーカーの衰退] ソニーがテレビ事業を分離するニュース(ソニーはなぜ、テレビ事業を「分離」するのか - 中国TC...」
  • link 25年12月26日
    すずき (12/30 14:01)
    「[Linuxのjournal操作メモ] 目次: Linux最近のLinuxディストリビューションはsystemdを採用している...」
  • link 25年12月22日
    すずき (12/28 23:39)
    「[ゲームを買ったら遊びましょう3] 目次: ゲーム前回の振り返り(2024年10月20日の日記参照)から1年経ちました。所持し...」
  • link 08年3月25日
    すずき (12/24 22:16)
    「[シムシティDS2クリア] 目次: ゲームシムシティDS2のチャレンジモード「現代 温暖化」編をクリアして、スタッフロールを拝...」
  • link 25年12月10日
    すずき (12/24 01:02)
    「[LinuxからBIOS/UEFIの設定を取得する] 目次: Linux設定によって何か動作を変えたい、PC再起動するのが嫌な...」
link もっとみる

こんてんつ

open/close wiki
open/close Linux JM
open/close Java API

過去の日記

open/close 2002年
open/close 2003年
open/close 2004年
open/close 2005年
open/close 2006年
open/close 2007年
open/close 2008年
open/close 2009年
open/close 2010年
open/close 2011年
open/close 2012年
open/close 2013年
open/close 2014年
open/close 2015年
open/close 2016年
open/close 2017年
open/close 2018年
open/close 2019年
open/close 2020年
open/close 2021年
open/close 2022年
open/close 2023年
open/close 2024年
open/close 2025年
open/close 2026年
open/close 過去日記について

その他の情報

open/close アクセス統計
open/close サーバ一覧
open/close サイトの情報

合計:  counter total
本日:  counter today

link About www.katsuster.net
RDFファイル RSS 1.0

最終更新: 02/27 03:32