ログイン 新規登録
言語:

WEKO3

  • トップ
  • ランキング
To
lat lon distance
To

Field does not validate



インデックスリンク

インデックスツリー

メールアドレスを入力してください。

WEKO

One fine body…

WEKO

One fine body…

アイテム

  1. 論文誌(トランザクション)
  2. プログラミング(PRO)
  3. Vol.1
  4. No.3

JNI プログラム中のバグ発見

https://ipsj.ixsq.nii.ac.jp/records/16428
https://ipsj.ixsq.nii.ac.jp/records/16428
1bf5c2ba-ff5f-45df-adfd-631161eeaea9
名前 / ファイル ライセンス アクション
IPSJ-TPRO0103005.pdf IPSJ-TPRO0103005.pdf (33.9 kB)
Copyright (c) 2008 by the Information Processing Society of Japan
オープンアクセス
Item type Trans(1)
公開日 2008-10-27
タイトル
タイトル JNI プログラム中のバグ発見
タイトル
言語 en
タイトル Finding Bugs in JNI Programs
言語
言語 jpn
キーワード
主題Scheme Other
主題 発表概要
資源タイプ
資源タイプ識別子 http://purl.org/coar/resource_type/c_6501
資源タイプ journal article
著者所属
日本アイ・ビー・エム東京基礎研究所
著者所属
日本アイ・ビー・エム東京基礎研究所
著者所属(英)
en
Tokyo Research Laboratory, IBM Research
著者所属(英)
en
Tokyo Research Laboratory, IBM Research
著者名 近藤豪 小野寺, 民也

× 近藤豪 小野寺, 民也

近藤豪
小野寺, 民也

Search repository
著者名(英) Goh, Kondoh Tamiya, Onodera

× Goh, Kondoh Tamiya, Onodera

en Goh, Kondoh
Tamiya, Onodera

Search repository
論文抄録
内容記述タイプ Other
内容記述 この発表で我々は,Java Native Interface (JNI) を用いたプログラムからバグを発見するための静的解析技術を述べる.JNI プログラミングは面倒でエラーが発生しやすい.なぜならコンパイラで検出できないJNI 特有の間違いが多数あるからである.この発表ではその中から次の 3 つに着目する.まず,ネイティブコードでは,例外を扱うための明示的な文がJava メソッド起動文の後に挿入されなければならない.しかし,この文は忘れられることがある.我々はこの欠陥を発見するためのタイプステート解析を提案する.第 2 に,ネイティブコードは Java VM 内にリソースを割り付けることができるが,それらは Java と違い明示的に解放されなければならない.このリソース管理におけるエラーはリークなどを引き起こす.この問題に対処するために我々は一般のメモリーエラー検出にも使われているタイプステート解析を用いる.第 3 に,Java リソースへの参照が複数回のネイティブメソッド呼び出しにまたがるときには,それは大域参照へ変換されなければならない.しかし,プログラマはこのルールを忘れて,後で使用するために局所参照を大域変数へ代入してしまうことがある.我々は,このふさわしくない慣習を検出するための構文チェッカを提供する.そして我々は,これらの解析技術を BEAM と呼ばれるバグ発見器の上に実装して,JNI を含むオープンソースソフトウェアに対して実行してみた.実験では 84 個の JNI 特有のバグをオーバヘッドなしに発見し,合わせて 73% バグ発見数を増やすことができた.
論文抄録(英)
内容記述タイプ Other
内容記述 In this presentation, we describe static analysis techniques for finding bugs in programs using the Java Native Interface (JNI). The JNI is both tedious and error-prone because there are many JNI-specific mistakes that are not caught by a native compiler. This presentation is focused on three kinds of common mistakes. First, explicit statements to handle a possible exception need to be inserted after a statement calling a Java method. However, such statements tend to be forgotten. We present a typestate analysis to detect this exception handling mistake. Second, while the native code can allocate resources in a Java VM, those resources must be manually released, unlike Java. Mistakes in this resource management cause leaks and other errors. To detect Java resource errors, we used the typestate analysis also used for detecting general memory errors. Third, if a reference to a Java resource lives across multiple native method invocations, it should be converted into a global reference. However, programmers sometimes forget this rule and, for example, store a local reference in a global variable for later uses. We provide a syntax checker that detects this bad coding practice. We have implemented our analysis techniques in a bug-finding tool called BEAM, and executed it on opensource software including JNI code. In the experiment, our analysis techniques could find 84 JNI-specific bugs without any overhead and increased the total number of bug reports by 73%.
書誌レコードID
収録物識別子タイプ NCID
収録物識別子 AA11464814
書誌情報 情報処理学会論文誌プログラミング(PRO)

巻 1, 号 3, p. 34-34, 発行日 2008-10-27
ISSN
収録物識別子タイプ ISSN
収録物識別子 1882-7802
出版者
言語 ja
出版者 情報処理学会
戻る
0
views
See details
Views

Versions

Ver.1 2025-01-22 23:52:27.495215
Show All versions

Share

Mendeley Twitter Facebook Print Addthis

Cite as

エクスポート

OAI-PMH
  • OAI-PMH JPCOAR
  • OAI-PMH DublinCore
  • OAI-PMH DDI
Other Formats
  • JSON
  • BIBTEX

Confirm


Powered by WEKO3


Powered by WEKO3