プログラミング

Android

NVIDIA Nsight Tegra がすごい その5

あれからもうちょっとだけ、Nsight Tegra を触ってみました。 今回はデバッグによく使うであろう機能についてチェックしてみます。 ブレークポイントが張れて停止するのは今までにしっかりと確認してきました。 今回は、条件付きブレークポイントやメモリ領域の表示、使い慣れたVisualStudioでの変数表示形式指定などを見てみたいと思います。 早速下記のコ...
プログラミング

USB 3.0 Kernel Debugging のための準備

Windows8 で カーネルデバッグを行うのに USB 3.0 が使えます。 ただしこのUSB 3.0で接続をするには、PCとPCを USBケーブルで接続しないといけません。 そして、PCは基本的にホスト側であることを想定されているため、タイプA形状のコネクタを持っています。 つまり、A-Aのケーブルが必要になります。 今までの USB 2.0 の場合は、...
プログラミング

Windows8時代のKernel Debugging USB 3.0編

前回はネットワーク経由によるWindows Kernel Debugの接続方法を説明しました。今回は USB 3.0によるカーネルデバッグの設定方法となります。 環境 ホスト Windows7 もしくは Windows8 がインストールされており、WinDbgが起動可能なように準備されていること。 VisualStudio 2012 + WDK の環境もOK...
プログラミング

Windows8時代のKernel Debugging

最近、WindowsのKernel Debugが出来るように準備を進めていました。古い人の話だと、カーネルデバッグはシリアル接続で!という話みたいですが、今やその接続方法も色々と選べるようで、しばらくこの接続方法について記事を書いておきたいと思います。 なお、自分は最近始めたばかりのにわかです。Kernel Debugging で出来ることはこれから学んでい...
Android

NVIDIA Nsight Tegra がすごい その4

前回、JniProxyタイプではうまくいかないです~の続きです。 動作させるためには、JavaJniAppのパッケージ(APK)に libNativeAppMain.so を含められればそれで完了です。 これをどうやって行うかですが、強引には以下の手順で実現することが可能です。 NativeAppMainをビルド。soファイルが出来る JavaJniAppの...
Android

NVIDIA Nsight Tegra がすごい その3

今回はNDKの開発で、割と使われるJNIProxyという手法で Nshight Tegra のデバッグブレーク機能は有効になるか?を確かめてみたいと思います。 このJniProxyという方法は、Android上ではアプリケーションの実行体イメージがメモリ上にまだ存在する場合、再利用してアプリケーションが動く、という挙動に対して解決する方法の1種です。 C/C...
Android

NVIDIA Nsight Tegra がすごい その2

NVIDIA Nsight Tegra 検証の第2弾です。 前回はほぼデフォルトで作成される状態のサンプルプログラムを実行させての動作確認だったので、今回はもう少し実際にあり得るケースで正常にデバッグが出来るのか、を試してみたいと思います。 今回のケース想定 2つのスタティックライブラリを使用して、.so を作成し、Javaから利用する。 要は libXXX...
Android

NVIDIA Nsight Tegra がすごい

NVIDIA Nsight Tegra を導入してみました。これは Tegra Android Development Pack に含まれています。 これが結構便利で、Android のNDK開発では個人的には最有力候補になると思っています。 一昨年くらいの TADP は個人的にはマイナス評価で検証後見送ったのですが、今回は多少のデメリットがあってもこれを選...
Android

ICONIA TABにICSアップデート

最近、WindowsのKernel Debugに手を出し始めました。色々とおもしろくなってきたので、これは近々ブログ記事で紹介できそうです。 今回は、それとは全く違って Acer ICONIA TAB A500 のアップデートの話です。 メーカーからのサポートでは、Android 3.2 が配布されておしまいだったのですが、今回どうしても 4.0以降にアップ...
DirectX

DirectX11で旧シェーダーコード(HLSL)を使う

DirectX11(DX11) は DirectX9(DX9) に対応したハードでも一応動かすことが出来ます。このとき、DX9 にのみ対応ハードで動かす場合、DX11 の機能は当然使えません。シェーダーに関しても同様で、頂点シェーダー、ピクセルシェーダーのみを使用することになります。 fxcや関連するドキュメントをみると、そういった DX9 ハード用のシェー...