タグ

2009年4月22日のブックマーク (20件)

  • Technical Note TN2124:Mac OS Xにおけるデバッグの魔法

    このテクニカルノートでは、Mac OS Xのさまざまな「隠れた」デバッグ機能、つまり環境変数、環境設定、GDBから呼び出し可能なルーチン、特殊ファイルなどについて説明します。Mac OS X向けの開発をしている場合は、このリストに目を通して、開発作業を楽にしてくれるものを見逃していないか確認してください。 はじめにMac OS Xには、個々のサブシステムの開発とデバッグを支援するために、エンジニアリングチームが追加したデバッグ機能がいくつか含まれています。これらの機能の多くは、リリース後のシステムにも残っており、コードのデバッグに利用できます。このテクニカルノートでは、広く役立つデバッグ機能をいくつか説明します。別の場所で文書化されているデバッグ機能については、機能の簡単な概要と既存ドキュメントへのリンクを記載しています。このテクニカルノートでは、デバッグ機能を網羅的には文書化しておらず、

  • C#とObjective-CとJavaと...(メモリ管理)

    プログラムにとってもっとも基的かつ重要な資源がメモリである。Cは処理系の単純さを目標とし、あらゆる機能の外部化(ライブラリ化)を果たしたため、他の言語では言語の機能に入っていることが多いメモリ管理もライブラリに任せている。mallocとfreeがそれだ。 C++でnewとdeleteが導入され、メモリ管理は言語の機能になり、かなり面倒は減った。 Javaはガベージコレクトという機能で、プログラマをメモリ管理の煩わしさから解放した、というよりはメモリ管理させてくれなくなった。C#も同様である。GraphicGripGropのJava版とC#版にはメモリ管理関連の記述は一切ない。 Objective-Cはメモリ管理に関してはライブラリに任せている。単にmallocとfreeのクラス化されたものなら良かったのだがさにあらず、NSAutoreleasePoolというかなり厄介なクラスを前提として

  • 無為空間iPhone

    無為空間 むいむい(´ω`*) Entries iPhone SDK 3.0で変わったこと タグ: iPhone Objective-C iPhone SDK 3.0がリリースされたので、2系向けに書いた記事から変更された部分のうち気付いたものをざっとまとめておく。 まず、2系のSDKには存在しなかった「iPhone向けSenTestingKitフレームワーク」が追加された。 これによって、Google Toolbox for Macを使わなくても、Simulator向けならこれまで通り「ビルド時」に、Device向けなら「アプリケーションの実行時」にテストを走らせることが可能となった。 詳しいことは『iPhone Developement Guide: Unit Testing Applications』を参照。 UIScrollViewには、2系ではなぜか用意されていなかった「拡大率を

    kaza13
    kaza13 2009/04/22
  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
    kaza13
    kaza13 2009/04/22
  • EXEC_BAD_ACCESSのデバッグ方法 - Paradigm Shift Design

    xcodeでプログラムを書いていると、メモリ管理なぞ忘却のかなたなので、リークしていたり、解放済みのメモリにアクセスしていたりと、問題が多々ある。 xcodeでのデバッグコンソールは、基的にgdbなので、VisualStudioで開発するようには簡単に問題箇所を見つけ出すことができない。 ポインタに対する不正なアクセスは、大体のところ プログラムはシグナルを受信しました:“EXC_BAD_ACCESS” というメッセージが出るだけで、「どこでそれが起こったのか」についての何の手がかりも与えられない。Breakすらしない。 さすがにこんな状況でデバッグしている人はいないだろうと、検索をかけてみると、 DebuggingAutorelease - CocoaDev NSZombieEnabled - CocoaDev あたりが役に立ちそうである。 とりあえず色々試行錯誤してみたが、NSZom

  • 【iPhone】メモリ不足時のシミュレートとデバッグ | iphoneアプリで稼げるのか

    iPachiで起きていた不具合なのですが、 特定の画面を表示中にメモリ不足に陥り didReceiveMemoryWarningを受け取ると アプリがクラッシュするという問題をついに 解消しました。 didReceiveMemoryWarning後にクラッシュするので メモリ管理でどこかがおかしくなっているのだろうとは 予想がつくのですが、いかんせん貧弱なエラーメッセージの ため、まったく発生元がつかめませんでした。 EXC_BAD_ACCESSとか言われてもさっぱりわからんです。 が、すばらしい記事をみつけました。 NSDebugEnabled これでクラッシュをおこしているオブジェクトの生成場所を 特定できるので、格段にデバッグ効率があがります。 というわけで、エミュレータでのメモリ不足時のシミュレートと デバッグのための設定をまとめます。 エミュレータでのメモリ

  • iPhoneSDK + ObjectiveCにおけるメモリ管理のはまり所 - mswar's はてなブログ

    まずは公式のObjectiveCのメモリ管理を読むべきである。(読まないと始まらない) http://developer.apple.com/jp/documentation/cocoa/Conceptual/ObjectiveC/4objc_runtime_overview/chapter_8_section_2.html そして、この辺が具体的なサンプルコードもあってよくまとまってる http://wwwa.dcns.ne.jp/~nito/CocoaClub/article01.html http://wwwa.dcns.ne.jp/~nito/CocoaClub/article02.html http://wwwa.dcns.ne.jp/~nito/CocoaClub/article03.html http://wwwa.dcns.ne.jp/~nito/CocoaClub/art

    iPhoneSDK + ObjectiveCにおけるメモリ管理のはまり所 - mswar's はてなブログ
  • 一時オブジェクトを大量に使う(メモリを消費する)処理をループする場合は、ループの中で自動解放プールを生成する - 24/7 twenty-four seven

    LDR touchではオフラインでも読めるようにフィードをキャッシュする仕組みがあります。 キャッシュするところのコードはだいたい以下のような感じになっています。 フィードのリストから、IDを取り出し、対応するエントリーのデータをダウンロードします。 - (void)saveEachEntries { LDRTouchAppDelegate *sharedLDRTouchApp = [LDRTouchAppDelegate sharedLDRTouchApp]; LDRManager *loginManager = sharedLDRTouchApp.loginManager; NSDictionary *feed; for (feed in feedList) { if ([self isCancelled]) { break; } NSString *subscribe_id = [N

    一時オブジェクトを大量に使う(メモリを消費する)処理をループする場合は、ループの中で自動解放プールを生成する - 24/7 twenty-four seven
    kaza13
    kaza13 2009/04/22
  • Ring

    Ringとは、リクルートグループ会社従業員を対象にした新規事業提案制度です。 『ゼクシィ』『R25』『スタディサプリ』など数多くの事業を生み出してきた新規事業制度は、 1982年に「RING」としてスタートし、1990年「New RING」と改定、そして2018年「Ring」にリニューアルしました。 リクルートグループの従業員は誰でも自由に参加することができ、 テーマはリクルートの既存領域に限らず、ありとあらゆる領域が対象です。 リクルートにとって、Ringとは「新しい価値の創造」というグループ経営理念を体現する場であり、 従業員が自分の意思で新規事業を提案・実現できる機会です。 Ringフロー その後の事業開発手法 Ringを通過した案件は、事業化を検討する権利を得て、事業開発を行います。 さまざまな事業開発の手法がありますが、例えば既存領域での事業開発の場合は、 担当事業会社内で予算や

    kaza13
    kaza13 2009/04/22
  • IPhone | 東京ヘッドターミナル - Part 3

    kaza13
    kaza13 2009/04/22
  • IBを使わずに作るiPhoneアプリ作成入門:第3回

    呼び出そうと思ったら、もうそこにはオブジェクトがなかった。。。何を言っているかわからねーと思うが(ry みたいなエラーになります。(こういう状態になったポインタを「ぶらさがりポインタ」と呼んだりもします。) ・・・ということは。 誰かが勝手にオブジェクトを破棄できてはいけないわけです。 ちゃんと「誰も必要としていない」という事が判って初めて、破棄/解放してよいのです。 ・・・ということはということは。 誰がこのオブジェクトを保持しているか、を、何かしらの方法でプログラム側が知っておく必要があります。 少なくとも「まだ必要としている変数がいるかどうか」が把握できる仕組みと、「誰も必要としなくなったときに自動的に破棄する」という仕組みが必要です。 そして、この仕組みを上手い事やってくれる手法が、「リファレンスカウンタ」方式です。 リファレンスカウンタとは、オブジェクトのポインタが別の変数にコピ

    IBを使わずに作るiPhoneアプリ作成入門:第3回
  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
    kaza13
    kaza13 2009/04/22
  • scan-buildでメモリリークを発見する方法のメモ - Hello, world! - s21g

    Objective-Cのコードを書いていると、メモリリークを していないかという所が気になりますが、 scan-buildコマンドを使うと、非常に簡単に静的にプログラムを解析して メモリリークを検出することができます。 プロジェクトのディレクトリに移動して、上記コマンドを実行するだけです。 標準出力と/tmp(あるいはオプションで指定したディレクトリに)レポートが出力されます。 メモリリークはInstrumentsでも検出出来ますが、 これもなかなか便利ですね。 See Also [iPhone SDK] iPhone SDK向けのコードを静的コード解析する CotEditor 0.9.4にclang scan-buildで静的解析をかけてみた

    kaza13
    kaza13 2009/04/22
  • iPhone向けサイトを考える:静的コード解析をしてメモリリーク等を教えてくれるclang

    2008年12月04日 静的コード解析をしてメモリリーク等を教えてくれるclang clangというのが便利でした。Xcodeのプロジェクトを解析して、メモリリーク等のバグをHTML形式で吐いてくれるツールです。 iPhone SDK向けのコードを静的コード解析する Macユーザーは使い方分かると思います。以下、僕みたいにWinを使ってたけどiPhone開発のために初めてMacを触った人向け。 root権限がない ここからビルドされたパッケージをダウンロード.ダウンロードしたファイルを解凍し,中のフォルダとファイルをすべて/usr/local/binにコピーする.(/usr/loca/bin/にパスが通っていることを前提) Finderで普通に見ると/usrがない。困った。ターミナルから覗くとどうやらあるっぽい。cpしようとすると、root権限が必要って怒られた(´・ω・`) アプリケーシ

  • clangでObjective-Cプログラムを静的解析

    はじめに 今回は、clangの静的解析機能を紹介します。 LeopardのOpenGLに採用されたことでも知られる、LLVMというコンパイラプラットフォームがあります。clangはLLVM内のプロジェクトのひとつで、gccに変わるC/C++/Objective-C用のLLVMフロントエンドを開発しています。 複数のAppleエンジニアが開発に参加しており、Objective-Cを積極的にサポートしているのも特徴です。 clangでは、通常のコンパイラとして以外にもコードの内部構造にアクセスするいくつかの機能があり、そのひとつが静的解析機能です。 プログラムの静的解析 プログラムを実行せずにプログラムの問題点・バグなどを分析することを「静的解析」といいます。 最近では、JavaのFindBugsが有名ですね。 人力で行うコードレビューも、静的解析と言われることもあります(そりゃそうでしょう

    kaza13
    kaza13 2009/04/22
  • iPhoneアプリのメモリリーク

    Objective-Cのメモリ管理をなかなか理解できない開発者も多い気がするので、メモリリークについて不安に思っている方も多いのではないでしょうか。 iPhoneで初めてプログラミングを始めた方もいるかもしれませんので、メモリリークについて簡単に説明すると、allocしたメモリ領域をrelease(dealloc)していないとか、確保したメモリがどこからも参照されない状態になって、ゴミが残っている状態の事です。 自分も理解するまで随分と悩みました。 まずはリークがあるかテストする所から始まります。 XCodeのメニューの「実行」→「パフォーマンスツールを使って開始」→「Leaks」を選択して、「Instruments」を起動しましょう。 以下のような画面でテストできます。 今回は「おみくじ」アプリでわざとメモリリークが出るように改変してみました。 このツールを使ったテストでは以下の2点に注

    iPhoneアプリのメモリリーク
  • 見落としてしまうメモリーリーク

    [iPhone][Mac] 私のアプリを買っていただく人が少しはでてきたようなので 少しほっとしてます。バージョン1.1では、プロセスの表示が追加されます。 メモリークリーニングとかいろいろアップデートに向けて着々と準備中です。 どうか、皆様よろしくお願いします。 ふ? 自分がアプリを申請したときは、無料のアプリもでてなかったし、 最初にでたアプリもバージョン1.0だったんで、そんなに心配して なかったんですが、えらい差をつけられてしまった。 買っていただけないのもしょうがないと思ってます。 でも、期待(誰もしてないかw)を裏切らないようにアップデート していきます。 で、ここからが今日の題です。 開発のブログといいながら、あまり記事にしてない?w 今日は気をつけた方がいいメモリーリークの落とし穴です。 もちろん iPhone だけではなくて、Mac というか Cocoa ですね。 iP

    見落としてしまうメモリーリーク
  • sonson@Picture&Software - [iPhone SDK] iPhone SDK向けのコードを静的コード解析する

    相変わらずNDAは解除されない.NDAを続けるメリットがいまいちよくわからない.たとえば,今みたいにSDKに入っているコードから商品の開発計画とかがばれるからだろうか.うーむ. ※ここからはSDK一般のお話ですから.あしからず. Xcodeに付属のInstrumentsのleaks挙動が怪しい.リークを検出したり,しなかったりする. そこで,@takuma104にclangを勧められた. clangのMacOSX向けのツールはXcodeのプロジェクトのファイルを全部舐めて解析してくれるらしく,使いやすそうと考えたので,試してみたので報告する. ・家サイト http://clang.llvm.org/index.html ・説明サイト http://kirika.la.coocan.jp/acts/cocoastudy/200807/clang-static-analyzer.ht

  • tv-game.jp» ブログアーカイブ » iPhone objective-C 静的解析ツール「clang」メモリーリークに有効

    iPhoneの開発をしていると、どうしてもぶつかる壁。。。メモリー iPhoneのメモリーは極端に少ないから、メモリーをこまめに管理する必要がある。 メモリーを解放せずに、続行してると、メモリーリーク(メモリー不足)で強制終了しちゃう んで、Xcodeで開発してても、それだけぢゃメモリーリークまでは気づきにくい。 そこで、clangというpythonでできたツールを導入。 これをターミナルから実行すると、プロジェクトの結果を任意の場所にHTMLで出力してくれる。 んで、そこにメモリーリークの注意とかまで書いてある。 しかも、かなりわかりやすい。 Clang Static Analyzer ここでダウンロードして回答したものを下記にコピー。 /usr/local/bin もちろん、ここにコマンドが入るからパスが通ってないとだめ。 んで、調査した

  • iPhone開発で役立ちそうなTipsの紹介 - もとまかのiPhone・iPod touch戯れ日記

    一昨日はNDA解禁に合わせて公開されたTipsを紹介しました。しかし、他にも様々なTipsが存在しています。エントリーで、その有益なTipsを紹介してみます。※今後も、このエントリーに追記していこうと思います。 一般 オブジェクトの状態をファイルに保存・復元する。(シリアライズ・デシリアライズ)http://d.hatena.ne.jp/KishikawaKatsumi/20081014/1223986859 UIToolbarのUIBarButtonItemをさしかえる方法http://d.hatena.ne.jp/uzulla/20080922#p1 aboutパネルの表示http://d.hatena.ne.jp/sakira09/20081004#1223129514 [iPhone SDK] AdHocでビルドされたアプリをインストールする(Win&Mac)http://son

    kaza13
    kaza13 2009/04/22