はじめに Visual StuioでOBSのプラグインを開発する準備について説明します。 詳細な手順がネットで見つからなかったので、独自に手順を検討しました。 デバッガで効率的にプラグインをデバッグできるようにします。 手順 OBS Studioをビルドする。(以下、ビ…
はじめに これは、OBSのウインドウのタイトルがどのように決められているのか突き止めるまでのメモです。 OBSのタイトル部分 今回使用したバージョンはこちらです。 https://github.com/obsproject/obs-studio/tree/e8dc70d0eef4503378d6ac300e680215eb5c937…
はじめに これはVisual Studio Community 2022でOBSをビルドする手順の記録です。 64bitのWindows版のOBSをビルドします。 基本的にこの手順に従います。 Wiki - Build Instructions For Windows | OBS 必要なソフト Visual Studio Community 2022 Windows 1…
はじめに 今回はXcodeでOBSをビルドし、デバッグできるようにするまでの手順を記録します。 色々うまくいかなかったですが、試行錯誤してデバッグできる状態まで持っていけました。 手順 基本的にここのマニュアルの通りでOK。 Build Instructions For Mac ·…
はじめに BlinkでShadow DOMのLayoutTestを実行する手順のメモです。 仕様 今回は以下の仕様のLayoutTestをピンポイントで実行します。 http://www.w3.org/TR/shadow-dom/ Invoking the cloneNode() method on a ShadowRoot instance must always throw a DA…
はじめに Google+を見ていたら、面白そうなポストがありました。 https://plus.google.com/100132233764003563318/posts/KRU6nxp7LXGCanaryビルドに新しいExperimentalな機能が追加されました。簡単に言うと、画像のリクエスト時にHTTPリクエストのAcceptヘ…
記念すべき第1号です。 https://chromium.googlesource.com/chromium/src/+/15fc083b4a23e23417a6bf71f38e2f7966908590単なるtypoの修正ですが、LGTM(Looks Good To Me)をもらった時は嬉しかったです。Botがビルドとテストを走らせる様子も体験してみると楽…
はじめに Visual Studio 2010 ExpressでChromeがビルドできるようになったので、次はデバッグを試してみました。今回は、こちらのドキュメントを参考にしました。 http://www.chromium.org/developers/how-tos/debugging 手順 1. chrome/chrome.slnを開きま…
はじめに chromeのWebSocketのコードを読んでいたら、コメントにtypoを発見しました。 せっかくなので、パッチを作成してレビューを受けられる状態までもっていきました。一連のワークフローは手順の通りでできました。 http://www.chromium.org/developers/…
はじめに Windows 7環境が汚れてきたので、Windows 7の再インストールのついでにChromiumをビルドできるようにしました。 環境 以下の環境でChromiumをビルドできるようにします。 Windows 7 Visual Studio 2010 Express Edition cygwin git ninja (ビルドシ…
はじめに 今回は、Google ChromeやiPhoneのMobile Safariなどで採用されているレンダリングエンジンWebKitをより身近な存在に感じられるようにします。スタンダードなパソコンとLinuxやC/C++の知識が多少あれば、WebKitのHackの入り口まで一気に到達できます…
今回はショートハンドプロパティであるfontプロパティのパースについて見ていきます。 ここだけ読んでも、CSS2.1の仕様とWebKitの実装の対応関係がとれているのがなんとなく見えてきます。 15.8 Shorthand font property: the 'font' property'font' Value: …
今回はCSSのプロパティと値の組(宣言)についてWebKitの実装を読んでみる。つまり、CSSの以下の仕様。 4.1.8 Declarations and propertiesA declaration is either empty or consists of a property name, followed by a colon (:), followed by a property v…
はじめに 久しぶりにブログを書いてみたくなりました。WebKitに興味が少し出てきているので、学んだことなどをメモとして書いていこうと思います。 コンパイル時assert コンパイル時assertの面白い例。コメントで型のサイズを肥大化させないこと、と書くより…
この前投げたパッチがbtrfs-unstableに取り込まれて、ついにメインラインにマージされました。 2.6.39のmerge windowのタイミングで取り込まれました。http://www.kernel.org/pub/linux/kernel/v2.6/testing/ChangeLog-2.6.39-rc1 commit dac97e516c617f9c79…
はじめてBtrfsにパッチを投げてみました。修正は単純で、メモリー確保後のチェックをより厳密にしただけです。Btrfsの開発コミュニティはBUG_ON撲滅に向けて動いているのに、BUG_ONを増やしてしまいました。http://www.mail-archive.com/linux-btrfs@vger.ke…
これまでUML(User Mode Linux)でカーネルデバッグできる環境を使って、カーネルの解析等を行ってきた。UMLの環境は、VMWare Server上のUbuntu 8.0.4に構築していたが、最近、起動しなってしまった。これまでKVM(Kernel-based Virtual Machine)に興味があった…
以前のエントリーで、BtrfsにBUG_ONマクロが散見されることについて書いた。この件について、#btrfsのIRCチャネルでBUG_ONについて質問してみた。でも、IRCではほしい答えが得られなかったので、Btrfsの開発メーリングリストに質問を投げてみた。 On Removin…
タイトルはちょっと大げさだけど、btrfs-unstableブランチとメインラインに動きがあったので、今回はその紹介。実は、Btrfsの開発ブランチである git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable は今年の7月中旬頃から全然更新されな…
BUG_ONマクロは、Linuxカーネルにおいて、引数に与えられた式を評価した結果が真となることが想定されない箇所(つまり、真ならバグ)で使われる。簡単に言うと、Cのassertのようなもの。ただし、assertよりもきつくて、BUG_ONの引数が真になると、カーネルパ…
久しぶりに、Linuxカーネルのメインラインをgit pullして、UMLカーネルをビルドしようとしたら、ビルドに失敗してしまった。原因はビルドできない壊れたコードがメインラインに入ってしまったため。今回は、ビルドできるようになるまでにやったことから、手…
以前、LinuxカーネルHack: ビルド時間の短縮を求めて でmakeの並列ビルドオプションを使ってビルドの高速化を試みた。今回は、カーネルモジュール開発でのビルド時間短縮を考える。今回紹介するテクニックは、デバイスドライバやファイルシステムなどのカー…
前回、カーネルモジュールをUMLでいじれるようになったので、次は何をしようかと思って、今回はLZOで遊んでみることにした。最初は、zlibで遊ぼうかと思ったけれども、ちょっと違う方が面白そうだったので。それに、BtrfsのWikiの「Project ideas」(https://…
今回は、カーネルからexportされている様々な関数(機能)にアクセスして実験するための準備として、カーネルモジュールを作成する。UML上でカーネルモジュールのビルド、組み込み(insmod)、解放(rmmod)ができるようにする。以下の操作はすべてUML上にて行う。…
今回は、Btrfsからちょっと脱線して、より深いところにある、UMLのブロック型デバイスドライバに寄り道してみることにした。 サマリー UMLではUBD(UML Block Deviceの略?)というブロック型デバイスドライバが仮想ドライブとしての役割を果たしている。 UBDで…
前回、Btrfsのmount後に様々なカーネルスレッドが起動されることを発見した。今回はその続きで、これらのカーネルスレッドを掘り下げて見ていく。全体的な構造が見えてきたけど、それぞれのカーネルスレッドでの処理の理解までにはいたっていない。 サマリー…
サマリー mountコマンドを実行すると、mount(2)が実行される。mount(2)があることをはじめて知った。http://linux-documentation.com/en/man/man2/mount.html Btrfsをmountできるようにするには予めカーネルに認識させる必要がある。init_btrfs_fsにてregist…
はじめに 今回は、UML+GDBでBtrfsをデバッグできるようにしてみる。途中で失敗して多少遠回りになったけれども、デバッグはできるようになった。なお、Ubuntu 10.10でのUMLの開発環境がまだ整備できていないので、これまで使ってきたUbuntu 8.04のUMLの環境…
VirtualBoxにインストールしたUbuntu 10.10(ホスト名は適当にmonkeyにしてみた)でBtrfsを早速試してみる。ちなみに、現在利用中のVirtualBoxのバージョンは3.2.8 r64453。まずは、VirtualBoxで仮想ドライブを追加。 Oracle VM VirtualBox > [Ubuntu 10.10のV…
Linuxカーネルの探索をはじめて1ヶ月が経過したので、今回はその振り返り。こうやってまとめてみると、1ヶ月あれば結構いろいろできるなぁと思った。 やったこと ビルド UMLカーネル UML(User Mode Linux)を使うことで、GDBを使いながらカーネルを効率よく解…