ソースファイルがどのターゲットに含まれているかを探す
print_preview_ui.ccがどのターゲットに含まれるか調べる
>gn refs out\debug //chrome/browser/ui/webui/print_preview/print_preview_ui.cc //chrome/browser/ui:ui_4 >
print_preview_ui.ccはターゲット//chrome/browser/ui:ui_4に含まれている。
ターゲット//chrome/browser/ui:ui_4がどのターゲットに含まれるか調べる。
>gn refs out\debug //chrome/browser/ui:ui_4 //chrome/browser/ui:ui > >gn refs out\debug //chrome/browser/ui:ui //chrome/browser:browser_0 //chrome/browser:browser_1 //chrome/browser:browser_2 //chrome/browser:browser_3 //chrome/browser:browser_4 //chrome/browser/devtools:test_support //chrome/browser/ui:test_support //chrome/test/data/webui:browser_tests_js_mojo_webui //chrome/test/data/webui:browser_tests_js_mojo_webui_action //chrome/test/data/webui:browser_tests_js_webui //chrome/test/data/webui:browser_tests_js_webui_action //chrome/test/data/webui:interactive_ui_tests_js_webui //chrome/test/data/webui:interactive_ui_tests_js_webui_action //chrome/test/media_router:browser_tests >
この中で実行ファイルらしきものは//chrome/test/media_router:browser_testsなのでこれをビルドしてみればデバッグできる。browser_0などは//chrome/browser:browserに含まれており、これもいろいろなテストに含まれる。
以下のコマンドで一発でできる。
>gn refs out\debug //chrome/browser/ui/webui/print_preview/print_preview_ui.cc --all --type=executable //chrome:chrome_initial //chrome/installer/mini_installer:mini_installer //chrome/installer/test:upgrade_test //chrome/test:autofill_captured_sites_interactive_tests //chrome/test:browser_tests //chrome/test:chrome_app_unittests //chrome/test:interactive_ui_tests //chrome/test:ntp_render_browsertests //chrome/test:performance_browser_tests //chrome/test:sync_integration_tests //chrome/test:sync_performance_tests //chrome/test:unit_tests //chrome_elf:chrome_elf_import_unittests >
ターゲットが依存するターゲットがどこで定義されたか調べる
直接依存していない場合は、間接的に依存しているのでそれを調べる。
desc --treeを使う
gn desc out\debug --tree //:HelloWorld
これはHelloWorldが依存しているものを調べる場合。--treeによりツリー上に一覧が表示されるのでここから検索する。
pathを使う
これは2つのターゲットがどのように依存しているかを表示する。
>gn path out\debug //:HelloWorld //:sse2 //:HelloWorld --[private]--> //:skia --[private]--> //:sse2 Showing one of 3 "interesting" non-data paths. 0 of them are public. Use --all to print all paths. >
HelloWorldはskiaに依存しており、skiaがsse2に依存していることがわかる。
ターゲットが定義したdefineを調べる
gn desc out\debug //:skia defines
--blameをつけるとツリー表示になり、誰が定義したかがわかる。
gn desc out\debug //:skia defines --blame
Page last modified on June 22, 2019, at 08:29 PM
Powered by
PmWiki