【HP ANSI C++/C】コンパイルオプション+Olitの既定値変更
質問内容
HP-UX 11i v2で正常に動作していたプログラムが、HP-UX 11iv3環境下でcoreダンプしました。
coreをgdbで解析しましたが、SIGSEGV(SEGV_ACCERR)が発生しており、文字列リテラルが割当てられている領域(読込専用領域)を操作しようとしたために、core dumpしたようです。
対処方法を教えてください。
回答内容
コンパイラバージョンA.06.15 からコンパイルオプションの既定値が +Olit=const から+Olit=all に変わり、読込専用領域となる範囲が広がりました。このため、コンパイラバージョンA.06.15より前では読込専用領域ではなかった文字列リテラルが、コンパイラバージョンA.06.15以降では読込専用領域となります。
+Olit=const を指定し、コンパイルすることで、HP-UX 11i v2と同様の動作となります。
【確認済みの対象OS】HP-UX IPF 11iv3
【カテゴリー】トラブルシューティング
製品名カテゴリ
-
コンテンツID:
3150109412
-
公開日:
2015年02月25日
-
最終更新日:2015年02月25日
アンケート
サポート情報充実のためアンケートにご協力をお願いいたします。
コメント欄: