授業課題でC言語の謎のエラーに困っていた→社会人大学院生(元金融SE)が、スペースを11個ほど追加してあげたらエラーが消えた!どういうこと?

正常に動いてなさそう
残業 コンパイラ エラー バッファオーバーラン エンコーディング コード 話題 c言語 プログラミング
192
ふくさんのグッドフクサニティ賞 @fukusanity
修士の頃、授業の課題でC言語書いてる時にどうしても謎のエラーが出て困っていた。それを見たSE経験(金融系)がある社会人大学院生の同期の女性が「ここにスペースを入れてみて」「もっと沢山、もっともっと」と言い出して、スペースを11個ほどコードに挟み込んだらエラーが消えた。怖かった
ふくさんのグッドフクサニティ賞 @fukusanity
驚いて「なんでこんなことになるんですか」「ていうかなんでわかったんですか」と聞いたけど「まあなんとなく」「勘」などと言ってはぐらかされた。「目で見てメモリダンプがわかる」みたいな話を聞くと彼女のことを思い出す。言語化できない知見で計算機の息遣いを察する能力は側から見ると霊感に近い
ふくさんのグッドフクサニティ賞 @fukusanity
彼女は当時参加してた研究のメンバーだったので共著で論文を書いたりもした。マネジメント能力も高く、デイリーミーティングを毎朝開き、タスクを洗い出し、手が空いた人が何を巻き取るか確認してから作業を進めた。後に社会人になり、スクラム研修を受けたとき「あれアジャイルだったのか…」となった
????????????
長谷川 @aki0816
@fukusanity @Rrenzokutai それ配列を壊してエラー出してたのを空白パディングで誤魔化しただけという気が… コンパイラの実装やOSにもよるけれど
きむら しんいち @ShinichiKimura
@aki0816 @fukusanity @Rrenzokutai 空白じゃなく「この呪文を埋め込んで!オンクロダノウウンジャクソワカ」だったら割増しでおもしろかったかも。
藤本 信(日本製) @DTM155
@fukusanity 全角スペースや改行コードの切れ端がまぎれていてエラーになってしまうことはたまにありますね
NYAMOLA🌈🕒 @Nyanmome_jaku
@fukusanity @nekoHit そういう人見ると、こういうこと思う時点でなれないんだなあ残念と思ってしまいますね…。 こうなりたいなあってね…… なんか凄すぎる人っているんですよね…
aria@TECH女子✨ @39AriaN1_pro
ふむー、C言語は一年半大学で学んだけど、そういうエラーは出たことなかったなー そこまでやり込んでなかったのもあるかもしれないですが。 けど、この話の彼女、すごいですね #プログラミング #謎のエラー #C言語 twitter.com/fukusanity/sta…
タタミン @marin_mama0502
VxWorksで開発してた時に、私の担当していた機能で使用していた変数が汚されて、犯人が掴めず、結局、汚された領域を使用しない様ずらした悲しい過去😭 twitter.com/fukusanity/sta…
ゴト子(=^▽^)σ【匿名希望】 @teketeke_o_o
会社のファックスが外線ゼロ発信で、短縮番号に市外局番から入れると送信失敗が多発するのをゼロの間にスペースいれると直るっていうのを思い出した。 C製の複合コピー機。 他にもホチキス位置がズレたり、色が狂うのを隣の機械の排熱のせいにしたり不具合が多くて契約5年で更新せずにサヨナラ twitter.com/fukusanity/sta…
うらわのわ ( ˙灬˙ )#30 @urawanowa
「このdebug文抜くと落ちるから消さないでね」って言われて渡されたプログラムを思い出す😱 twitter.com/fukusanity/sta…
iu @oyone946
極限の状況に追い込まれるとSE独特の危機察知能力が磨かれる。今はそこまで追い込まれる現場って少ないだろうけど。 twitter.com/fukusanity/sta…
かめ @anoncow1
スクリプト言語なら読み込み遅延とかあるのかも知らんけど、Cでスペースの個数ってコンパイル時に無視されるんちゃうの? 知らんけど twitter.com/fukusanity/sta…
てらだ @u_1roh
C言語でスペースを沢山入れるとエラーが消える状況が思いつかない。どなたか分かる方。 twitter.com/fukusanity/sta…
KOBA @tiisaibasyo
逆に金融系SEの直し方でなさ過ぎて怖い。 内容から見てほぼ文字列操作か配列操作でミスってる。メモリ管理せな。 twitter.com/fukusanity/sta…
イカ2ニク(´・_・♡) @miquniqu
終端を空白で判定したりする処理とかがあって、ゴミを初期化してるのかな twitter.com/fukusanity/sta…
えど山 @edoyama
実際のコード見てみないとわかんないけど、それで解決した事になったコードは怖過ぎる。 twitter.com/fukusanity/sta…
Takeru Saso @takeruko
このエピソードの女性の行動、根拠がいちいち科学的じゃなくて気持ち悪い。科学的じゃない=他の人が再現できない、真似できない。組織では厄介な存在。すごい人なんだろうけど、正直一緒に仕事したくない。 twitter.com/fukusanity/sta…
dynamitecoolguy @dynamitecoolguy
メモリ破壊系の修復だろうな。たぶん文字列領域。 そういや昔は、配列の添え字に負の値を指定して、変数とは別の領域をあえてアクセスするとかひどいことやったことを思い出した。昔の組込系はそういう世界・・ twitter.com/fukusanity/sta…
あばにゃん @aba3
似たようなことやったことあるよねー 私の場合は、エンコーディング違いで空いちゃった領域に空白埋めて……って意味だったんだけど、エンコーディングがどうとか分かる人たちじゃなかったから(説明の余裕もなかった)、とりあえず埋めて!て。 しばらくの間、私に「謎の魔法を使う」と評判が立った twitter.com/fukusanity/sta…
taiz @mayonezudaiou
何故エラーが消えたのかが気になる twitter.com/fukusanity/sta…
小麦茶(ホット) @teandt
組み込みのコンパイラで物理的に別のramにまたがるテーブル作ったら境界より後ろはゼロフィルされてたとかあったな 境界跨がないように無理やりパディングして埋めてた twitter.com/fukusanity/sta…
残りを読む(23)

コメント

おろろ @fYe39CoQsPrbZVK 2020年2月21日
これを金融系が指示したてのが怖すぎるな。穴の空いたバケツの傍にオムツ置いて水浸しにならなくなったでしょ?みたいな話やで
IT土方 @s_takepon 2020年2月21日
うーんたぶんやっちゃダメなエラー修正な気がする見た人の勘違いだと良いけど
山吹色のかすてーら @sir_manmos 2020年2月21日
てか、最近のCコンパイラで「謎のエラー」なんか出ない。エラーメッセージを読めない奴が居るだけ。C++は知らんけど。
ぼんぼ (唐揚げに大根おろし&ポン酢醤油) @tm_bonvo 2020年2月21日
コンパイルエラーと実行時エラーの区別がつかないレベルの人がそうでない人にifの念を抱く。あるある
oshow2001 @oshow2001 2020年2月21日
コンパイルエラーではなく、実行時のエラーの事かな。
minori19780 @minori19780 2020年2月21日
よくわからんが まあ動いてるから ヨシ!
ヴァリ @milk_frog 2020年2月21日
全然根本的解決になってない。ダメな修正やんか。
エリ・エリ・レマ・サンバディトゥナイ @mtoaki 2020年2月21日
Windows95の頃は市販ソフトでもメモリリークとかあったしまぁ
黄色いかまぼこ @yellow_chikuwa 2020年2月21日
新米「悲鳴が聞こえます」 元傭兵「クッションを挟んでみて」 新米「聞こえなくなりました」 元傭兵「ヨシ」 みたいなことかな。ワイルドすぎるでしょ。
S A K U R A 8 7 @多摩丙丁督 @Sakura87_net 2020年2月21日
文字列処理系で初期化せずに配列操作したか、null文字として認識してバグったんだろう。どちらにせよなんとなくメモリダンプが読めるなら問題になってるところを改修しないと。
kusano @t_kusano 2020年2月21日
一つもいい話じゃないんですけど。。。修士の授業の課題ごときのエラーを力技で直すなよ。絶対正解あるんだからさ。
Tadashi @tadashifx 2020年2月21日
ポインタと配列の区別ついてない人なら簡単にやらかす話かとも思ったけれど…その場合スペースで修正はいかんと思う。
むう @nyal1999 2020年2月21日
ファイル分割とかコメント行追加とか謎改行・謎空白でバグ回避は割とあるあるなので困る。中かっこの字下げの有無だけで結果変わったりね。たいていコンパイラの構文解釈のバグあたりを疑わないといけないんだけど、まともに直そうとすると地獄見るので場当たりのおまじないが流行るわけヨ…
a7R2Lj @a7R2Ljtm 2020年2月21日
残業の話もそうだけど「力(ちから)の1号」かよと思ってしまった。当座はいいけど後に続くにはつらい話。
佐渡災炎 @sadscient 2020年2月21日
美談だか武勇伝のつもりで呟いたのか知らんが、理屈を知ってる人から見たら完全にオカルトホラー案件。計算機の動作は必ず言語化できる。
佐渡災炎 @sadscient 2020年2月21日
原則、コンピュータがやることは必ず人間にもできる。コンピュータは人間より極めて高速にできるというだけで。
Nagatsuki@martial arts topics @i_dnt_need_u2 2020年2月21日
理解出来ないものを畏怖するというなら、それは感情であって個人差の世界だな。なんとなくで済む仕事は嫌い、これはわたし個人の感想です。
シロネコ @straypas 2020年2月21日
char a[]のやつが一番ありそう。ただそれを「勘」で直してる時点で能力的に不安なんだけど
masano_yutaka @masano_yutaka 2020年2月21日
C社の複合機の場合は謎でもなんでもなくて、ゼロが入る>外線発信が出来る状態に交換機側が変わるまでにタイムラグが必要だったので、その時間をスペースを入れることで稼いだ。 だけの話。 設置に来たエンジニアのミス。 パラメータ設定すればスペースは必要ない。
ざっぷ @zap3 2020年2月21日
フロッピーディスクの特定セクタが破壊されてるから無視されるデータで回避してるんだなきっと!(違
zyake @zyake 2020年2月21日
こういうバッドノウハウ的なやつじゃなくて、真っ当で地味なエンジニアリング/CSで頑張ろうよ
寺田33 @tera3333 2020年2月21日
固定長の識別コードを直書きして動作確認してたとかでもありそうな挙動。
Sugiyama Satoshi/ DAHON DASH ALTENA2019/K3 @satoshissatoshi 2020年2月21日
きっと処理系のバグがそこここにあった頃の話では。残業300時間でおめでとうってさすがに1980年代以前でしょ。
寺田33 @tera3333 2020年2月21日
しかし、説明できないかする気ないなら余計なことしない方がよかったのでは??ツイ主が理解・自己解決のきっかけを失ってしまっている。今に至るまで全く理解できておらずオカルトとして解釈してるとか悲しすぎる結末。。
金目の煮付 @kinmenitsuke 2020年2月21日
まず「謎のエラー」ってのがよくわからん。エラーには全て原因がありますよね。
湯飲み @sencha_inYunomi 2020年2月21日
これ、現状動くようになっただけで複雑化していったらエラーの原因になる奴だ
幕部進一 @MakubeShinichi 2020年2月21日
ただインデントがおかしかっただけだと信じたいがそれもそれでそれを謎エラーとか言ってるのはヤベェよなってやつ
ぴんくすライム @PINKs_Lime 2020年2月21日
残業300時間とは。 9時~17時が定時扱いで、一月を31日、月四回の日曜出勤は全日残業扱いとしても、休日なしで毎日朝9時から朝4時半まで働いていることになります。 普通に死ぬ。
ぴんくすライム @PINKs_Lime 2020年2月21日
ちなみに、私はかつて某有名ブラック企業に勤めていた時に、同じ時間で働いた事が有りますが一週間持ちませんでした。パワハラもひどかったですけど。
mikumiku_aloha @mikumiku_aloha 2020年2月21日
定数の文字列領域に、プログラムのどこかで文字数以上のの書き込みが発生する(定数のところに書き込むのがそもそもミス)からメモリーがぶっ壊れるのを空白を入れることで回避出来たというだけで、定数のところに書き込んでいるバグは潰せていないケースと見た。
mikumiku_aloha @mikumiku_aloha 2020年2月21日
char a[]="abcde"; char b[]="fgh"; とかで strcpy(b, a); とかやって誤動作して、 char b[]="fgh "; で動くようになったと
せんたく @senn_taku 2020年2月21日
「なぜ動かないのかわからない」 「なぜ動くのかわからない」
mikumiku_aloha @mikumiku_aloha 2020年2月21日
mikumiku_aloha スペースが入らなかったけどfghの後ろにだだだだっとスペースを入れればメモリーをぶっ壊さないですむ。C言語の初心者がやるミス。
K.Yanagisawa @K_Yana47 2020年2月21日
理由がわからないほど怖いものはないわ。
雲雀っちゃ @anas1yam 2020年2月21日
文字列の中にスペースを入れたんだよね……?
tama @tamama666 2020年2月21日
金融系だしCOBOLで固定長ならわかるけどCでと言うのがなぞ というかコンパイル通っただけでバグ持ったままなのでは…
TaiDa @idarf777 2020年2月21日
あと、行末にコメント入れると動かないとか、マイナーな処理系ではわりとありがちなことです。
yononaka👁‍🗨 @yg5q1 2020年2月21日
コ   ア   ダ   ン   プ
kartis56 @kartis56 2020年2月21日
話が2つともホラーで怖すぎる
Daregada @daichi14657 2020年2月21日
C言語の話の不味い点は、「課題に困った修士過程の学生が、アドバイスに従って(おそらく実行時)エラーが出なくなったプログラムを、それ以上自分で原因を究明することなく提出して以後放置し、その結果現在に至るまで単なるオカルト案件としか認識していない」点だろ。件の女性にはツイート主の課題を手伝う義理はないから、「手がかりは与えたからあとは自分で考えてね」ってことじゃねーの
さく @sakuro 2020年2月21日
スペースを入れた箇所を理解している人と理解していない人がおるな。
また結婚したバツ3 @CAFE_XXX 2020年2月21日
構造体配列使ってバウンダリ境界を跨いだ所をアクセスしたから死んだ。スペース挟んで、境界超えしないようにしたら動くようになったって話では? コンパイラがそうゆうコンパイラだったんだろう。
iksk @space_sk4500 2020年2月21日
仕事ならだいぶまずいけど、そうじゃないなら動けばいいんだよ
あ~れ~@横須賀鎮守府 @31kt_Now 2020年2月21日
金融系でC言語って1980年代のメインフレーム時代だろうし どこのコンパイラ使ったんだろう?
愚民Artane.🦀@マスク二枚で令和のジンギスカン作戦 @Artanejp 2020年2月21日
mtoaki 何か、あの時代かその少し前っぽいですよね(´・ω・`)
五月雨山茶花蝉しぐれ @taken1234challe 2020年2月21日
根本的に考え方が違う。原因を解決するのではなく、プロジェクトの進行を妨げているものをいかに効率的かつ即座に排除するかという考え方なのだ。従ってこの場合も、エラーの根本を治すのではなく、エラーを吐いていることによりプロジェクトの進行が止まっているので、エラーを吐かせないようにするという考え方である。
トケイネコ @tokei1974kuro 2020年2月21日
C言語の「おまじない」の意味を分からなくても、大学卒業できるもんね。
愚民Artane.🦀@マスク二枚で令和のジンギスカン作戦 @Artanejp 2020年2月21日
taken1234challe これでしょうね。90年代の後半にこれやると上司から怒られましたけど(´・ω・`)
愚民Artane.🦀@マスク二枚で令和のジンギスカン作戦 @Artanejp 2020年2月21日
今はvalgrindみたいなツールやアドレスサニタイザがフリーで普及してるので、かなり楽になったと思いますけど…。
五月雨山茶花蝉しぐれ @taken1234challe 2020年2月21日
Artanejp こういう考え方ってIT以外の業界もよくあるんですよね・・・工場とかで機械がエラー吐いて止まっても、音が出てるスピーカーを引っこ抜くことで対処したり・・・なんでエラーが出てるのかではなくて、エラーが出た場合に支障をきたす「現象(機械が停止したり、エラー音がけたたましく鳴り響いたり)」を解決するという考え方なので・・・
Earwax @Earwax97409510 2020年2月21日
マルチスレッドの再現性超低い原因不明のバグにおまじないでsleep(1)書いたらなんか直ったっていうアレ
⛩️ のーみん丁 ⛩️ @noumin_T 2020年2月21日
『最近のCコンパイラで「謎のエラー」なんか出ない』っていうの、まぁ最近のコンパイラじゃなかったんやろ……という感じ(修士の頃って言ってるし過去なのは間違いない)
五月雨山茶花蝉しぐれ @taken1234challe 2020年2月21日
勝利に不思議の勝ちあり。敗北に不思議の負け無し。「勝敗」を「成否」に置き換えてもこの理論は正しい。
tomi:@GSR RC部、 @tommy_luv_TK 2020年2月21日
全角スペースならまだしも…diffみたい
VitzRsTurbo @VitzRsTurbo 2020年2月21日
ただCって言っても、プラットフォームとライブラリとどのコンパイラなのか分からんのでなんとも。 デバッガ使うとかアセンブラ吐き出させるとかいった解決方法はとらなかったんだな。
蓮華ちゃん @hasuhanachang56 2020年2月21日
ソルさんとかHPさんとかに居たんだろうか?
フローライト@『今日どこさん行くと?』応援中 @FluoRiteTW 2020年2月21日
どんなにインテリジェンスでロジカルな職場でも、究極的には体力と筋肉が全てを決めるんだって痛感するわ
tama @tamama666 2020年2月21日
taken1234challe それWeb系エンジニアならまあいいんですが、これやったのか金融系SEと言うのはヤヴァイですよねー できる人っぽく元ツイにあるけどとても信じられない
むう @nyal1999 2020年2月21日
tamama666 日経コンピュータから3冊もムック出るほど大炎上して、しかも「まだくすぶってるんじゃね?」とか言われてるとこがどこかと思えばですね…
クッキー太郎 @MiitomoTester 2020年2月21日
みずほ銀行のレガシーを大切にしよう
五月雨山茶花蝉しぐれ @taken1234challe 2020年2月21日
tamama666 プロフェッショナルエラーの常習者ってだけだよね。学生から見ればスゲーとなるかも知れないけれど、会社人的にはガンだよ。
trycatch777 @trycatch777 2020年2月21日
こういうの見て思うけど、実際のコード見ないとホント何とも言えませんね…
saku @sakuuuuuuune 2020年2月21日
「元金融系のSE」が最大のホラーポイントです
もももっちり @UFj2LUOCvSczNbw 2020年2月21日
\\ここに空白を入れるとなぜか動く
席上 @Nonsomnia 2020年2月21日
当事者でないなら間違いが複数ある場合は指摘も修正もクソだるいので勘とかなんとなくで応急処置で誤魔化す気持ちはわからなくもない。そこもここもこれも間違ってる、なんて馬鹿正直に全部指摘しても返って感謝されないことだってあるし
k9cycle @__hage 2020年2月21日
printf(""); /* これを消すとなぜかバグる */ 系のあれですね。そんなもん何処かでスタックぶっ壊してるからだろうが。配列の範囲外になにかやってるとかそういうのを見つけるのが先だろうが。printfがたまたまスタックの状態をバグが顕現しない値に書き換えてただけだろうがよ。この手のごまかしをやると時限爆弾になってとんでもないタイミングでとんでもない規模の爆発になるから徹底的に潰さないとやばいんですよ。ロジックのミスより遥かにたちが悪い。
hogehoge @hogehog78594862 2020年2月21日
実際のコードも見ずにやれオカルトだ、そんな直し方する奴が○○だ、とかよく言えるな そんな人間がいっぱい居るってことが一番怖いわ
k9cycle @__hage 2020年2月21日
いえ、言えますよ。殊Cに関してはね。
やりすぎキング @yarisugiking 2020年2月21日
taken1234challe 安全装置が過度に働いて作業が止まりがちだって言って、安全装置を外して機械を動かすことが常態化していて、ある日いつもと違う何かが起こったときについにザクッと……
Earwax @Earwax97409510 2020年2月21日
>「SE経験(金融系)」 みずほを見てきた者たちだ 面構えが違う
猫宮こゆき/マヌル@薔薇鯖/条約 @NekomiyaK 2020年2月21日
UFj2LUOCvSczNbw これを実際に見たことがあり前任者に殺意が芽生えた
BLACK @BlackBlack0013 2020年2月21日
懐かしいな。CPM上で動くCを使ってた時に同じような現象があった。コンパイラじゃなくて、ソースを中間ファイルに変換するプログラムにバグがあったんだっけ。
ほづきささみ @hsasami3 2020年2月21日
文字列を配列扱いしててNull領域にアクセスしてエラーになってたとか…? 初期化の際文字列の定数を入れてたとかだろうか
mailerdemon @mailerdemon3 2020年2月21日
hogehog78594862 まともな感性でこんなサイト覗いてると心を壊すから見るのをやめたほうがいい
むう @nyal1999 2020年2月21日
これ直さなきゃいけない状態になってポインタとかスタックとかメモリダンプのせいだ!とか決め打ちでやったら一か月は一歩も前進しない奴だからみんなは気を付けような!
toget9999 @toget9999 2020年2月21日
"そういう人見ると、こういうこと思う時点でなれないんだなあ残念と思ってしまいますね…。こうなりたいなあってね…… なんか凄すぎる人っているんですよね…" 俺はこのツイートでカーネルパニック起こした
yuki🌾㊗️5さい🎉⚔ @yuki_obana 2020年2月21日
正しく安全なコード書かないとなと思いましたまる(´・ω・`)実際面倒くさいんだよね…
つよし(清野剛) @tseino 2020年2月21日
Cに関しては、これだけ情報あれば大体想像がつく。容易に致命的なバグを作り込めるし、内容があまりにも良くあるアルアルだもの
ピタパン太郎 @katsudon_oniku 2020年2月22日
‪開発環境自体のクセだかバグでメモリ確保出来ずにその場しのぎでこんな事やった事はある。
touyamochi @touyamochi1 2020年2月22日
えぇ・・修士で、授業の課題でマジでこんな低レベルな事やってんの。。? メモリダンプがわかるとかほざいてるけど今のスペック上がった環境でそんなん意味ねーっつうの。 むしろ多少のパフォーマンスなんて気にしなくて良いから可読性重視でコードかけやカス。 こいつアジャイルって意味ホントに分かってるのか?ググっただけじゃねーの。
touyamochi @touyamochi1 2020年2月22日
スパゲッティ野郎が
hatiya @hatiya14 2020年2月22日
誰も求めてないアドバイスのご高説。どっからともなく現れるC言語以外の話。詳細が分からないにもかかわらず「原因はこれだね」と断言。「俺の環境ならそんなことは起こらない」自分語り。なんでこんなツイートばっかなん?
Kishiba @Kishiba3 2020年2月22日
一言も情報系の学部とは言われてないので、単に理系で「ツールとして使うだけのC言語」なのでは? とは思う。それでも理系学生としては「いや課題も完璧にきっちりしろよ」と思うのかな。正直専攻でもない、必要に迫られて使うだけの分野でそこまで求められても、というのが本音だけれど。
Kishiba @Kishiba3 2020年2月22日
ていうかどう考えても現代でもこのレベルのオカルト解決はまだ日本中に蔓延してるとは思う。ただ、それが「否定されて当然」って時代になってるのなら、それは良いことだろうね。
はくまに・アーチボルト @haku_mania_P 2020年2月22日
これ昔の話、だよな…? 確かに、昔のコンパイラはスペースや開業大量に入れたり、空っぽのprintf()ぶっこんでメモリずらすとエラーやバグが出なくなるとか謎現象(メモリ位置をずらすことで、他のところで起きてるオーバーフローのヤバいところを対処療法的にずらすとかそんなんだったはず)あったけども…最近のはそういうのなくなってるはずなんだけども。
SND-L/KSND(itoken) @SNDR_SNDL 2020年2月22日
課題だから大したコードではなさそうで、スペースが関係するのは文字処理くらいか。 scanf/printf系で、char配列の初期化サイズか書き込み先のサイズをミスってて11バイトくらい余分に必要だった、がオチかな...?
絢唄 @ayauta22 2020年2月22日
UFj2LUOCvSczNbw 実際に体験した奴だとバグってるのはわかってるけど、調査のためにprintfを突っ込むとエラー吐いて死ぬのは見たことあります。
佐渡災炎 @sadscient 2020年2月22日
taken1234challe 根本解決しなかったらプロジェクトの進行は止まったまま。「進行してるように見せかける」のが目的なら話は別だが。
Zackey98 @Zackey98 2020年2月22日
いつの時代の話なんだろう…どちらも最近の話なら嬉々として語る方も既にぶっ壊れてる。
ばびっと2号 @_Babbit2 2020年2月22日
さすがに実行時エラーですよね…こんな対応で「コンパイル時エラーが」消えるなんてあり得ん。
リベール.3go @liberaldenial 2020年2月22日
夢の中でバグに遭遇してデバッグして、現場で全く同じバグが起こったことあるんだけど同じ経験した人いる???
Shin Matsuda (syncbunny) @syncbunny 2020年2月22日
sadscient ソフト開発が目的なら止まったままでしょうけど、開発したプログラム使って何かをやることが目的なら作業が止まらないように対症療法すれば十分という判断はアリかと。
Mongyang @taisyo_2015 2020年2月22日
haku_mania_P そうそう。メモリ管理っぽいのよね。今、気にする技術かしらという。もう現役じゃないのでわからないけど、C言語がメインの時代は限りあるメモリ空間を有効に活用するってのが求められたし進化した。2000年代からは気にせずぶん回して、メモリ解放するおまじないのコマンドを入れてで終わりという感じだけど。RAMに展開される配列を意識して、そこの容量限界や早いアクセスを意識するって、今はないでしょ
Urushibara @tsuji_pneuma 2020年2月22日
バッファオーバーフロー防止に定数か何かにパディングしたんじゃなかろうか。こういう対処って根本的な解決になってないから批判も多いだろうけど
キケリキー @KIKERIKI17 2020年2月22日
昔々のコンパイラなら、色々あった可能性は否定できない。コンパイラが発生させるNOPの加減で、動いたり、動かなかったり、とか・・・
からみし @karamishi9 2020年2月22日
低レベルですね。その場しのぎの対応なところと、メモリが原因云々でソフトハードのハードよりなところ、そしてこの何が言いたいんだかわからない私の謎かけもどき。
キケリキー @KIKERIKI17 2020年2月22日
いまでは「おまじない」を嗤う人がいるけれど、昔々は本当に「おまじない」だったんだよな。その行を入れるとコンパイラの吐き出す中間コードが変わるから動く、みたいな・・・・何もかも皆懐かしい・・・・
メラ @vprjct 2020年2月22日
思い当たるのはmallocで配列長指定していたとかかなあ>スペース入れたら解決するバグ 解決と言っていいのかは分からんけど……
メラ @vprjct 2020年2月22日
Pythonとかcoffeescriptとかみたいな言語だとスペース(インデント)がブロックの役割を果たしてるのもあるけどCだとそんな仕様なかったはずだし
Hacchi @2mocccck 2020年2月22日
たまにコメントは全くコンパイルに影響を及ぼしてないと思ってる人いるよね。「ここのコードは処理とは無関係である」と判断して処理から除外してるのはどこの誰なんだと聞いてみたい。
冶金 @yakeen4510 2020年2月22日
「それが現在の妻です」って書いてあるのかと思ったけど、書いてなかった。
nekosencho @Neko_Sencho 2020年2月22日
女性にCの手ほどきをうけたなんて嬉々としてネットで報告することなのだろうか
water20 @water20 2020年2月22日
現在でも組込系デバイス(IoT)の開発では起こりうる話です。今でもC言語が主流で、利用できるメモリもストレージも僅かですし、OSすらない場合もあります。開発環境の進歩でチェックはある程度できる様になりましたが。
じゃこうねこ @Jakoneko2 2020年2月22日
このケースは違うと思うけど、コンパイラのバグもあるからねぇ(最適化オプションが悪さする場合とか)。プリプロセッサやリンカのほうがバグってることもある。すぐにバグ修正されないから、おまじないを書かざるを得なかったこともある。
掛居明彦 @KakeiAkihiko 2020年2月22日
4択の問題で3番目を選んでおこうみたいなものかと。
tomtia_tw @tomtia_tw 2020年2月22日
C言語なんて8bit CPUの頃から普通に使われていて、それこそ足し算や掛け算の順序変えるだけとか、コメント入れるか入れないかだけで生成されるコードが変わってた時代もあったんだから、その頃の話なら別に不思議は無いよ。OS-9 のCコンパイラなんて間違ったコード生成することが多くて、変な動きをするときにはまず生成されたアセンブリコード読むのが普通だったよ。今でこそ笑い話だけど。
Toge Toge @TogeTog81377597 2020年2月22日
vprjct ヒープから取ってくるならまだ可愛くて、この手のは大体オート変数で配列オーバーしてスタックぶっ壊す。
有希猫tale @ayano_fox 2020年2月22日
UFj2LUOCvSczNbw 不意なバックスラッシュはやめろぉっ
べんどあ @phin0003 2020年2月22日
実行系のエラーならいくらコードが正しくても実行機側の問題でそういうことになることはいっぱいある なんでよりによってその端末でだけ確定で発生するのか まあ実行機メーカー側の不具合なんだろうけどそこまで責任負えないよ
味噌カッツ @freakykombat 2020年2月22日
まあ、普通に考えて嘘松なんだと思う。
anineko @ANINEKObySYSTER 2020年2月22日
taken1234challe 機械の場合は「対策不可能なエラー」なんて日常的に起こる。「数メートル先のスポット溶接機が放つ電磁ノイズを拾って誤動作、しかし溶接を止めるわけにはいかない」とかね。その場合はソフトでエラーを誤魔化す。通信系のソフト(ファームウエア)なんてコードの9割はその手の外乱エラー対策だ。エラーの海の中で溺れながら確実に伝えるべきデータを伝えるのが技術というもんだ。
ARENA @Arenacyan 2020年2月22日
FAXのゼロ発でスペース(orカンマ)入れるのは、内部交換機から、局発信に切り替わるタイムラグを待つために入れるので、裏技・謎技ではなく、本来の使い方だね。
ask @whirlpool 2020年2月22日
satoshissatoshi 昔は女性は残業、深夜帯勤務で法規制がかかってたから、80年代ではこのケースは逆に無理。これの法改正は1999年で、今は女性もオッケー。というかそれ以前に残業300hって平日毎日27時退勤、休日9時27時でも無理でしょ。(昼に1h、夕方、夜に1h、深夜1hは休憩時間で引かれるから)
ask @whirlpool 2020年2月22日
とりあえず、理系の修士課程がこんな出鱈目な話してるると文系叩きマン達が困るぞ。ざまあ。
PentliumEE @7GHz 2020年2月22日
ふるーいマイナーなCコンパイラだとよく起こってたんだよなーこの類のバグ。 MicroCとかいうPICコンパイラがこの類のバグをたくさん抱えてた(遠い目)
あごにー @Agony_01 2020年2月22日
まあ、仕事でこれやったらぶんなぐられるから注意しようね・・・原因特定できないと修理しちゃだめよ。
PentliumEE @7GHz 2020年2月22日
デタラメ書いてると思って叩いてるやつと、古いコンパイラであったなーそんな事、と思って遠い目してるやつの2種類いて面白い。
PentliumEE @7GHz 2020年2月22日
MicroCの例でいうと hoge(int val) { return val; } int main(void){ int val; val = hoge(val); } 上のような文で謎のエラーがでて、";"がないとか言われる。 で、ソースコードの最後に改行入れまくったりスペース入れまくったりすると、すんなりコンパイルが通る。
PentliumEE @7GHz 2020年2月22日
このMicroCの例は2006年頃の例、ちなみにMicroCはまだマクニカから買えるぞ!!
xi @accountLINKonly 2020年2月22日
サラリーとしては無能だったんでしょうね、という方々のコメに敬服
Fakir@鞄 @FakirCarbuncle 2020年2月22日
学生の課題で、実行時エラー(コードは正しい)。とりあえず自端末上で問題発生しなければいいのであれば、対応もこんなもんじゃないの。
Toge Toge @TogeTog81377597 2020年2月22日
FakirCarbuncle 課題のために使うプログラムならそれでいいけど、プログラムを組む課題だったとしたらメモリ破壊してる時点でD評価かな
フロッグ(喪中) @thefrog1192 2020年2月22日
プログラミング全然分かんないので普通に社会人との学習ってこういう事あるんだなーって思って読んでたら、これダメな奴なのか
ask @whirlpool 2020年2月22日
「昔の話だろ」に関しては、過去ログ辿ると学部卒が2013年、修士課程修了が2015年なのでわりと最近だし、そんな愉快な話があったらこの人普通にtweetしちゃうでしょって感じなのに、C言語の話で過去ログ検索しても出てこないんだよね。この「女性の同期」とやらも2013年〜2015年に出てこないの。他の「同期」は出てくるけど。
ask @whirlpool 2020年2月22日
工学部のようなので、プログラム自体はどうでもよく、動けばいいやレベルだったのだろうが、「よくわからないエラーが出てよくわからないけど直してもらった」って、すごい話すぎてまともに相手できないでしょこんなの。この「エラー」とやらがビルド時のものか実行時のものかも定かでないのに。
spin_out @spin_over 2020年2月22日
大体初期化をきちんとしてない変数のポインタ使ったりしてメモリ壊してるパターン。
spin_out @spin_over 2020年2月22日
KIKERIKI17 htmlのヘッダに無意味な日本語を入れて文字化けを防いでいたのはそんな昔の話でもないんだけどねw
spin_out @spin_over 2020年2月22日
spin_over 20年以上前だから結構昔だった
ハント中尉 @wildlicca 2020年2月22日
++とか#とかobjectiveとか付かない生のC言語は変数の動的メモリ確保とか全然やってくれないから文字列変数なんかは予めその変数に入る可能性のある最大文字数byte分確保しなくちゃならないのを、その変数の宣言部分にで空白文字入れるという力技で行って解決した、って感じですかね、この件は。
spin_out @spin_over 2020年2月22日
wildlicca strcpyだとメモリ破壊の可能性が出るので、必ずstrncpyかmemcpyでサイズ指定しなきゃ駄目ってルールあったのが懐かしい。
m232796 @m232796 2020年2月22日
文字列リテラル以外でスペース突っ込んでもコンパイル結果が変わるってのはコンパイラのバグでしか考えにくいので除外。文字列にスペース突っ込んで問題が解決したならばメモリ配置がかわると現象が変わるということで、メモリ破壊系のバグが強く疑われる。それを放置して症状を抑えるだけの修正を行う「SE経験(金融系)」という部分に恐怖するしかない・・・・・・メモリダンプ読むのとは違い完全に危険なその場しのぎに思えてならない・・・
ハント中尉 @wildlicca 2020年2月22日
spin_over どっちもコピー先変数のメモリ確保が不十分だとバッファオーバーランしますけどね。あと変数メモリ末端にNULLが付加されない場合があるのでこれもオーバーランの原因になりますので注意。ポインタ関係慣れると直接メモリいじって遊べて面白かったんだけどね。
kartis56 @kartis56 2020年2月23日
Neko_Sencho 意味が変わるからそこだけ切り取るのなしというメタ発言かな?
⛩️ のーみん丁 ⛩️ @noumin_T 2020年2月23日
学校で使ってる事はないと思うが、今でも古いCコンパイラでコンパイルしないといけない、コンパイラもどきみたいなのでエラーすらまともに表示されないみたいなゴミみたいな開発環境はあったりする……。自分が学生の頃のプログラミング授業も物凄い古いPCと開発環境でやってたので、正直何が出てきてもそんなに驚かない。
m232796 @m232796 2020年2月26日
noumin_T https://jp.sharp/calc/product/pcg850vs/ 「標準ガン無視だがスペックたりねーんだよ文句あっか」標準には全然準拠してないし中間言語インタプリタらしいけどBASICよりは早いしプリミティブな感じがなかなか楽しい環境。float内部表現がBCD系なのも萌えポイント。工業高校ではたぶんまだ現役なんじゃないかな
ログインして広告を非表示にする
ログインして広告を非表示にする