HP-UX11を使って、32bitで使っていたCのソースを64bitでリコンパイルする作業
をしている。
コンパイルオプションもかなり変わってしまってかなり手こずったのだが、どう
にか通るところまでこぎつけた。
で、実行してみるとSegmentation fault!
なにやらsqlcxt関数を呼び出す付近で落ちている。
となると、Oralce接続部分でかと予想。
周辺で使用している変数をかたっぱしから見てみると、Oracleへ接続する際に使
用するUsernameとPasswordの変数がおかしい。
(gdb) p username
$1 = 0xfffffffffffffe22
この2つの変数、getenv関数を使って値を取得しているのだが、ちょっとここを
うたがってみる。
(gdb) p getenv("USERNAME")
$3 = -728
ビンゴ、変な値を取ってきている。
で、これを使っているソースを見てみると、なんと、stdlib.hをincludeしてい
ない。
これでもコンパイルは通るんですね。。。
ということで、#include