タグ付けされた質問 「linux」

Linuxの質問は、プログラミングに関連している必要があります。このタグは、Linuxでコードを実行したという理由だけでなく、Linux APIまたはLinux固有の動作を使用したプログラミングに関する質問の場合にのみ使用してください。Linuxサポートが必要な場合は、https://unix.stackexchange.comまたは特定のLinuxディストリビューションのStack Exchangeサイト(https://askubuntu.comやhttps://elementaryos.stackexchange.com/など)を試すことができます。

3
指定された実行可能ファイルの外部でgdbを使用してシングルステップアセンブリコードを使用すると、「現在の関数の境界が見つかりません」というエラーが発生します
私はgdbのターゲット実行可能ファイルの外にいて、そのターゲットに対応するスタックさえ持っていません。私はx86アセンブリの専門家ではないので、とにかくシングルステップでアセンブリコードで何が起こっているのかを確認したいと思います。残念ながら、gdbはこの単純なアセンブリレベルのデバッグを行うことを拒否します。適切なブレークポイントで設定および停止できますが、シングルステップ以降を実行しようとすると、gdbは「現在の関数の境界が見つかりません」というエラーを報告し、EIPは変更されません。 追加の詳細: マシンコードはgccasmステートメントによって生成され、objdump -dの出力から、それが実行されているカーネルメモリの場所にコピーしました。ローダーを使用してオブジェクトコードを再配置されたアドレスにロードする簡単な方法は気になりませんが、ロードはカーネルモジュールで実行する必要があることに注意してください。 別の代替策は、gdbに提供する偽のカーネルモジュールまたはデバッグ情報ファイルを作成して、この領域がプログラムコード内にあると信じ込ませることだと思います。gdbは、カーネル実行可能ファイル自体で正常に機能します。 (本当に知りたい人のために、実行時にVMware VM内のLinuxカーネルデータスペースにコードを挿入し、VMwareWorkstationの組み込みgdbスタブを介してカーネルをリモートデバッグするgdbからデバッグしています。カーネルを記述していないことに注意してください。悪用;私はプロトタイプを書いているセキュリティ大学院生です。) (アセンブリ内の各命令にブレークポイントを設定できます。これは機能しますが、x86アセンブリ命令のサイズが異なり、再起動するたびにアセンブリの場所が変わるため、しばらくするとかなり面倒になります。)

11
区切り文字に基づいて1つのファイルを複数のファイルに分割します
-|各セクションの後に区切り文字として1つのファイルがあります... unixを使用してセクションごとに個別のファイルを作成する必要があります。 入力ファイルの例 wertretr ewretrtret 1212132323 000232 -| ereteertetet 232434234 erewesdfsfsfs 0234342343 -| jdhg3875jdfsgfd sjdhfdbfjds 347674657435 -| ファイル1で期待される結果 wertretr ewretrtret 1212132323 000232 -| ファイル2で期待される結果 ereteertetet 232434234 erewesdfsfsfs 0234342343 -| ファイル3で期待される結果 jdhg3875jdfsgfd sjdhfdbfjds 347674657435 -|
88 linux  unix  awk  split 

4
jmapを実行してソケットファイルを開くことができません
jmapプロセスのヒープダンプを取得するために実行する必要がありました。しかしjvm返されました: Unable to open socket file: target process not responding or HotSpot VM not loaded The -F option can be used when the target process is not responding だから私は-F:を使用しました ./jmap -F -dump:format=b,file=heap.bin 10330 Attaching to process ID 10331, please wait... Debugger attached successfully. Server compiler detected. JVM version is 24.51-b03 …
88 java  linux  jvm  jvm-hotspot 

4
Linuxでは、rand()が数値を繰り返す頻度がMacよりはるかに多いのはなぜですか?
私が取り組んでいるプロジェクトの一部としてCにハッシュマップを実装していて、ランダム挿入を使用してそれをテストしていたのはrand()、Linuxの方がMacよりはるかに頻繁に数値を繰り返すようであることに気付いたときです。RAND_MAX両方のプラットフォームで2147483647 / 0x7FFFFFFFです。私はそれを、バイト配列RAND_MAX+1-longを作成し、RAND_MAX乱数を生成し、それぞれが重複であるかどうかをメモし、見られるようにリストからそれをチェックするこのテストプログラムに削減しました。 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <time.h> int main() { size_t size = ((size_t)RAND_MAX) + 1; char *randoms = calloc(size, sizeof(char)); int dups = 0; srand(time(0)); for (int i = 0; i < RAND_MAX; i++) { int r = rand(); if (randoms[r]) { // printf("duplicate at …
87 c  linux  macos  random 


9
LinuxでHTTPS経由でgithubリポジトリのクローンを作成できません
git clone https://github.com/org/project.gitCentOSボックスで簡単なことをしようとしていますが、次のようになります。 エラー:要求されたURLがエラーを返しました:https://github.com/org/project.git/info/refsへのアクセス中に401 致命的:HTTPリクエストが失敗しました ユーザー名/パスワードの入力を求められることはなく、失敗するだけです。 Macでまったく同じ通話を問題なく行うことができます-何が欠けていますか?
87 linux  git  github 

5
VIM:Ubuntuで正確な行に移動する方法
私はviUbuntu12.10で使用しています。一部のファイルは非常に長いため、ファイルの途中に移動するときは、ページを下に移動するか、下にスクロールする必要があります。 正確な行番号に移動するためのVIMショートカットはありますか?
87 linux  bash  vim  ubuntu  terminal 

10
特定のファイルがWindowsで開いているかどうかを確認するにはどうすればよいですか?[閉まっている]
閉まっている。この質問はトピックから外れています。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新することがありますので、話題のスタックオーバーフローのため。 7年前に閉鎖されました。 この質問を改善する Linux用の私のお気に入りのツールの1つはlsofです-本物のスイスアーミーナイフです! 今日、私はWinXPシステムのどのプログラムが特定のファイルを開いているのか疑問に思いました。lsofと同等のユーティリティはありますか?さらに、問題のファイルはネットワーク共有を介していたため、それが問題を複雑にするかどうかはわかりません。

10
Bashを使用してコマンドの出力を列ごとに分割しますか?
私はこれをしたい: コマンドを実行する 出力をキャプチャします 行を選択します その行の列を選択します 例として、からコマンド名を取得したいとします$PID(これは単なる例であり、これがプロセスIDからコマンド名を取得する最も簡単な方法であることを示唆しているわけではないことに注意してください-私の本当の問題は出力形式を制御できない別のコマンド)。 実行するpsと、次のようになります。 PID TTY TIME CMD 11383 pts/1 00:00:00 bash 11771 pts/1 00:00:00 ps 今、私はやってps | egrep 11383、 11383 pts/1 00:00:00 bash 次のステップ:ps | egrep 11383 | cut -d" " -f 4。出力は次のとおりです。 <absolutely nothing/> 問題はcut、出力を1つのスペースでカットしps、2列目と3列目の間にスペースを追加してテーブルの類似性を維持cutするときに、空の文字列を選択することです。もちろん、cut4番目のフィールドではなく7番目のフィールドを選択するために使用することもできますが、特に出力が可変で事前に不明な場合は、どうすればわかりますか。
87 linux  bash  pipe 

12
Linuxで共有ライブラリとしてgoogleTestを設定する方法
Debianは、gTest用のプリコンパイル済みパッケージを提供しなくなりました。フレームワークをプロジェクトのメイクファイルに統合することをお勧めします。しかし、メイクファイルをクリーンに保ちたいです。以前のバージョン(<1.6.0)のようにgTestを設定して、ライブラリに対してリンクできるようにするにはどうすればよいですか?

5
Makefileの$ PATHにdirを追加するにはどうすればよいですか?
テストを実行するMakefileを作成したいと思います。テストはディレクトリ './tests'にあり、テストされる実行可能ファイルはディレクトリ './bin'にあります。 テストを実行すると、ディレクトリ./binが$ PATHにないため、execファイルが表示されません。 私がこのようなことをするとき: EXPORT PATH=bin:$PATH make test すべてが機能します。ただし、Makefileの$ PATHを変更する必要があります。 単純なMakefileコンテンツ: test all: PATH=bin:${PATH} @echo $(PATH) x パスを正しく出力しますが、ファイルxが見つかりません。 これを手動で行う場合: $ export PATH=bin:$PATH $ x それならすべてOKです。 Makefileの$ PATHを変更するにはどうすればよいですか?
87 linux  makefile 

5
LINUXで、.aライブラリ/アーカイブが32ビットか64ビットかを判断しますか?
Linuxでは、64ビットバージョンと32ビットバージョンの両方で静的ライブラリを配布しています。顧客のトラブルシューティングを行うときは、.aアーカイブファイルをチェックして32ビットか64ビットかを判断することにより、診断シェルスクリプトで問題をすばやく解決したいと思います。私が思いついた方法は、エレガントではありません。 .oメンバーを抽出し、「file」コマンドを要求します(ELF 32ビットなど) 32bit.o / 64bit.oなどを示すようにコード化されたダミーメンバーの組み込みを開始し、「ar-t」を使用してチェックします 「stringsxyz.a | grep 32」を試しましたが、これはバージョンではうまく機能しません。悲痛な問題ではありませんが、エレガントな解決策を知っているなら、私は知りたいです。

3
Linuxoom-killerのログを理解する
私のアプリはoom-killerによって殺されました。これは、スワップなしのライブUSBで実行されているUbuntu 11.10であり、PCには1ギガバイトのRAMが搭載されています。実行されている唯一のアプリ(Ubuntuに組み込まれているものを除く)は、私のプログラムflasheravです。/ tmpはメモリマップされており、クラッシュ時に約200MBのファイルが含まれていたことに注意してください(したがって、最大200MBのRAMを使用していました)。 om-killerログを分析して、すべてのメモリがどこで使用されているかを正確に理解できるようにする方法を理解しようとしています。つまり、合計で最大1ギガになり、oom-killerキックが発生するさまざまなチャンクは何ですか。に?それを理解したら、1 GBのRAMを搭載したマシンでアプリが実行されるように、違反者の使用量を減らすことに取り組むことができます。私の具体的な質問はです。 状況を分析するために、「total_vm」列を合計すると、609342KBしか得られません(/ tmpの200MBに追加しても、まだ809MBです)。「total_vm」列が何であるかについて間違っているかもしれません-割り当てられているが使用されていないメモリと共有メモリが含まれていますか。はいの場合、実際に使用されているメモリを大幅に誇張するべきではありません(したがって、メモリが不足するべきではありません)。以下のリストに記載されていない、使用中の他のメモリチャンクはありますか? [11686.040460] flasherav invoked oom-killer: gfp_mask=0x201da, order=0, oom_adj=0, oom_score_adj=0 [11686.040467] flasherav cpuset=/ mems_allowed=0 [11686.040472] Pid: 2859, comm: flasherav Not tainted 3.0.0-12-generic #20-Ubuntu [11686.040476] Call Trace: [11686.040488] [<c10e1c15>] dump_header.isra.7+0x85/0xc0 [11686.040493] [<c10e1e6c>] oom_kill_process+0x5c/0x80 [11686.040498] [<c10e225f>] out_of_memory+0xbf/0x1d0 [11686.040503] [<c10e6123>] __alloc_pages_nodemask+0x6c3/0x6e0 [11686.040509] [<c10e78d3>] ? __do_page_cache_readahead+0xe3/0x170 [11686.040514] [<c10e0fc8>] filemap_fault+0x218/0x390 …


7
bash-whichコマンドからの結果をcdにパイプする方法
whichコマンドの結果をにパイプするにはどうすればよいcdですか? これは私がやろうとしていることです: which oracle | cd cd < which oracle しかし、それらのどれも機能しません。 これを実現する方法はありますか(もちろんコピー/貼り付けではありません)? 編集:考え直してみると、宛先ファイルはフォルダ/ディレクトリではないため、このコマンドは失敗します。 だから私は今、末尾の「/ oracle」部分を取り除くためのより良い方法を考えて考えています(sedまたはawk、あるいはPerlさえ):) 編集:さて、それは私が最終的に得たものです: cd `which oracle | sed 's/\/oracle//g'`
87 linux  bash  shell  cd 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.