JP2011048581A - ソースコード解析システム - Google Patents
ソースコード解析システム Download PDFInfo
- Publication number
- JP2011048581A JP2011048581A JP2009195859A JP2009195859A JP2011048581A JP 2011048581 A JP2011048581 A JP 2011048581A JP 2009195859 A JP2009195859 A JP 2009195859A JP 2009195859 A JP2009195859 A JP 2009195859A JP 2011048581 A JP2011048581 A JP 2011048581A
- Authority
- JP
- Japan
- Prior art keywords
- source code
- value
- execution
- endianness
- library
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/51—Source to source
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
Abstract
【解決手段】第2のエンディアン方式に従ったシミュレーションの実行中に代入文が実行される毎に、前記代入文に第1のエンディアン方式に従ったシミュレーションと第2のエンディアン方式に従ったシミュレーションとで、同一の意味に解釈される値が代入されるか否かを判定し、同一の意味に解釈される値が代入されない場合には、第2のエンディアン方式で代入された値を期待値で上書するとともに該代入文をエンディアンネス依存箇所としてレポート出力する。
【選択図】図8
Description
第1の実施の形態のソースコード解析システムは、第1のエンディアン方式に従う実行環境で実行されることを想定したソースコードを第2のエンディアン方式に従う実行環境で実行されることを想定したソースコードに移植する際に特に問題となるソースコード中のエンディアンネス依存箇所を特定することができる。以下では、第1のエンディアンをビッグエンディアン、第2のエンディアンをリトルエンディアンとして説明する。なお、以降の説明においては、ビッグエンディアン方式に従う要素(構成要素、データ)を単にビッグエンディアン処理系と表現することもある。また、リトルエンディアン方式に従う要素をリトルエンディアン処理系と表現することもある。図1は、第1の実施の形態のソースコード解析システムの構成を説明する図である。
第1の実施の形態を用いてビッグエンディアンからリトルエンディアンへの移植を行うと、移植されたソースコードから生成されたオブジェクトコードがメモリに書き込むデータは全てリトルエンディアンになる。この場合、メモリマップI/Oで接続されたハードウェアアクセラレータや他の処理系と通信を行うライブラリをビッグエンディアンの処理系から再利用する際に問題が発生する。
Claims (5)
- ソースコードをビルドして第1の変数記憶方式に従う実行環境で動作する第1オブジェクトコードを生成する第1ビルド部と、
前記第1オブジェクトコードを動作させ、前記第1オブジェクトコードの実行パス上の代入文に代入された値を順次取得し、前記取得した値と前記代入文との対応付けを実行トレースとして順次出力する実行トレース出力処理を実行する第1実行部と、
前記ソースコードをビルドして前記第1の変数記憶方式と異なる第2の変数記憶方式に従う実行環境で動作する第2オブジェクトコードを生成する第2ビルド部と、
前記第2オブジェクトコードを動作させ、前記第2オブジェクトコードの実行パス上の代入文に値が代入される毎に、前記第2オブジェクトコード実行中に代入された値と前記実行トレースに基づいて求まる前記第2オブジェクトコードの動作中に前記代入文に代入されるべき値である期待値とが一致するか否かを判定し、双方の値が異なった場合、前記第2オブジェクトコード実行中に代入された値を前記期待値で上書きするとともに前記代入文は変数記憶方式依存箇所であるとして前記ソースコードにおける前記代入文の位置情報をレポート出力する変数記憶方式依存箇所特定処理を実行する第2実行部と、
を備えることを特徴とするソースコード解析システム。 - 前記第1ビルド部は、前記実行トレース出力処理を実行するためのライブラリである実行トレース出力用ライブラリを備え、前記ソースコードのビルド時に前記ソースコードに前記実行トレース出力用ライブラリをリンクさせ、
前記第2ビルド部は、前記変数記憶方式依存箇所特定処理を実行するためのライブラリである変数記憶方式依存箇所特定ライブラリを備え、前記ソースコードのビルド時に前記ソースコードに前記変数記憶方式依存箇所特定ライブラリをリンクさせる、
ことを特徴とする請求項1に記載のソースコード解析システム。 - 前記ソースコードに含まれる代入文にライブラリ呼び出し関数を挿入するソースコード変換部をさらに備え、
前記第1ビルド部は、前記ソースコードに挿入された前記ライブラリ呼び出し関数に前記実行トレース出力用ライブラリをリンクさせ、
前記第2ビルド部は、前記ソースコードに挿入された前記ライブラリ呼び出し関数に前記変数記憶方式依存箇所特定ライブラリをリンクさせる、
ことを特徴とする請求項2に記載のソースコード解析システム。 - 前記第2ビルド部は、前記第1の変数記憶方式で書き込みアクセスすべきメモリアドレスの範囲を指定するアドレス範囲指定の入力を受け付け、前記第2オブジェクトコードの実行中に代入文に代入された値の格納アドレスが前記アドレス範囲指定に指定されている範囲に含まれる場合、第1の変数記憶方式で記述された値を期待値とし、前記代入文に代入された値の格納アドレスが前記アドレス範囲指定に指定されている範囲に含まれない場合、前記第2の変数記憶方式で記述された値を期待値とする、ことを特徴とする請求項1に記載のソースコード解析システム。
- 前記第2ビルド部は、前記第2オブジェクトコード実行中に値が代入された代入文に対する値の対応付けが前記実行トレースに記述されていなかったとき、警告を出力して前記第2オブジェクトコードの動作を停止させる、
ことを特徴とする請求項1に記載のソースコード解析システム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009195859A JP5050019B2 (ja) | 2009-08-26 | 2009-08-26 | ソースコード解析システム |
US12/713,817 US8266596B2 (en) | 2009-08-26 | 2010-02-26 | Source code analyzing system and source code analyzing method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009195859A JP5050019B2 (ja) | 2009-08-26 | 2009-08-26 | ソースコード解析システム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2011048581A true JP2011048581A (ja) | 2011-03-10 |
JP5050019B2 JP5050019B2 (ja) | 2012-10-17 |
Family
ID=43626747
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009195859A Expired - Fee Related JP5050019B2 (ja) | 2009-08-26 | 2009-08-26 | ソースコード解析システム |
Country Status (2)
Country | Link |
---|---|
US (1) | US8266596B2 (ja) |
JP (1) | JP5050019B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015077418A (ja) * | 2004-11-24 | 2015-04-23 | バイエル メディカル ケア インコーポレーテッド | 注入処理の1又は複数フェーズのパラメータを決定する装置、システム及び方法 |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102236574A (zh) * | 2011-06-24 | 2011-11-09 | 浙江工业大学 | 一种可视化表示和解释c/c++语言声明语句的方法 |
JP2015043198A (ja) * | 2013-07-22 | 2015-03-05 | 株式会社東芝 | 解析システム、解析方法および解析プログラム |
US9733911B2 (en) * | 2015-11-11 | 2017-08-15 | National Instruments Corporation | Value transfer between program variables using dynamic memory resource mapping |
US10282274B2 (en) * | 2017-06-14 | 2019-05-07 | Microsoft Technology Licensing, Llc | Presenting differences between code entity invocations |
CN109214188B (zh) * | 2017-06-30 | 2022-05-27 | 阿里巴巴集团控股有限公司 | 一种漏洞分析方法和装置及数据处理方法和装置 |
US11516234B1 (en) * | 2019-07-08 | 2022-11-29 | Cisco Technology, Inc. | In-process correlation through class field injection |
CN112083931A (zh) * | 2020-09-15 | 2020-12-15 | 上海眼控科技股份有限公司 | 程序处理方法、装置及设备 |
CN115904855B (zh) * | 2023-03-02 | 2023-07-07 | 上海合见工业软件集团有限公司 | 基于信号动态追踪确定目标驱动源码的系统 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5488714A (en) * | 1990-05-23 | 1996-01-30 | Unisys Corporation | Computer program analyzer for adapting computer programs to different architectures |
US5432795A (en) * | 1991-03-07 | 1995-07-11 | Digital Equipment Corporation | System for reporting errors of a translated program and using a boundry instruction bitmap to determine the corresponding instruction address in a source program |
JPH05119960A (ja) | 1991-10-25 | 1993-05-18 | Oki Electric Ind Co Ltd | バイトオーダ依存コーデイング検出方法 |
US6173442B1 (en) * | 1999-02-05 | 2001-01-09 | Sun Microsystems, Inc. | Busy-wait-free synchronization |
US7243193B2 (en) * | 2004-05-27 | 2007-07-10 | Silverbrook Research Pty Ltd | Storage of program code in arbitrary locations in memory |
US7552427B2 (en) | 2004-12-13 | 2009-06-23 | Intel Corporation | Method and apparatus for implementing a bi-endian capable compiler |
US7716642B1 (en) * | 2005-05-03 | 2010-05-11 | Emc Corporation | Techniques for detecting coding incompatibilities |
-
2009
- 2009-08-26 JP JP2009195859A patent/JP5050019B2/ja not_active Expired - Fee Related
-
2010
- 2010-02-26 US US12/713,817 patent/US8266596B2/en not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015077418A (ja) * | 2004-11-24 | 2015-04-23 | バイエル メディカル ケア インコーポレーテッド | 注入処理の1又は複数フェーズのパラメータを決定する装置、システム及び方法 |
Also Published As
Publication number | Publication date |
---|---|
US20110055818A1 (en) | 2011-03-03 |
JP5050019B2 (ja) | 2012-10-17 |
US8266596B2 (en) | 2012-09-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5050019B2 (ja) | ソースコード解析システム | |
CN109918903B (zh) | 一种基于llvm编译器的程序非控制数据攻击防护方法 | |
JP5333232B2 (ja) | プログラムデバッグ方法、プログラム変換方法及びそれを用いるプログラムデバッグ装置、プログラム変換装置並びにデバッグ用プログラム | |
US7266809B2 (en) | Software debugger and software development support system for microcomputer operable to execute conditional execution instruction | |
CN107480476B (zh) | 一种基于ELF感染的Android本地层指令编译虚拟化加壳方法 | |
US9626170B2 (en) | Method and computer program product for disassembling a mixed machine code | |
US7093165B2 (en) | Debugging Method | |
JP2011530768A (ja) | ソフトウェア・アプリケーションの性能向上 | |
US20110126179A1 (en) | Method and System for Dynamic Patching Software Using Source Code | |
EP2141587A1 (en) | Method and system for generating of a control flow graph for representing a program code | |
EP1085412A2 (en) | A relocation format for linking | |
CN115017516A (zh) | 一种基于符号执行的模糊测试方法 | |
US20120011490A1 (en) | Development system | |
US20050216897A1 (en) | Converter, automation device with a converter, and a development environment having an automation device with converter | |
JP2002532804A (ja) | ハイブリッドコンピュータプログラミング環境 | |
US8490073B2 (en) | Controlling tracing within compiled code | |
Sadolewski et al. | Compiler and virtual machine of a multiplatform control environment | |
JP2008052688A (ja) | プログラムのパッチデータ生成装置 | |
CN114090440A (zh) | 一种基于安卓操作系统的一体化免源码调试方法 | |
US7296199B1 (en) | Systems and methods for defining and utilizing attributes of a processor resource | |
Verbeek et al. | Highly Automated Formal Proofs over Memory Usage of Assembly Code | |
JP6116983B2 (ja) | エントリーポイント抽出装置 | |
JP2012018641A (ja) | ソフトウェア開発システム | |
US11630757B1 (en) | System and method for developing, testing and debugging software for microcontrollers | |
KARAPATEAS | RETARGETING AN ASSEMBLY OPTIMIZER FOR THE MIPS/SCALE ASSEMBLY |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20110802 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20120118 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120124 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120326 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20120626 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20120723 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150727 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |