問題タブ [name-mangling]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
haskell - GHC プロファイラ出力の型クラス関数のデマングリング
GHC で書かれた Haskell プログラムをプロファイリングするとき、型クラス関数の名前は .prof ファイルでマングルされ、あるインスタンスのそれらの実装を別のインスタンスと区別します。これらの名前をデマングルして、それがどのタイプのインスタンスであるかを調べるにはどうすればよいですか?
たとえば、次のプログラムがあり、型FastとSlow両方が実装されているとしShowます。
でコンパイルし-prof -auto-all -caf-allて実行し+RTS -pます。生成される .prof ファイルでは、上位のコスト センターは次のとおりです。
ツリーには、同様に次のように表示されます (関係のない行は省略します)。
の実装であり、の実装でshow_an9はないことをどのように把握できますか?SlowshowFast
c++ - C++ での名前マングリングに関する質問
C++ での名前マングリングを学び、理解しようとしています。ここにいくつかの質問があります:
(1) devxから
グローバル関数がオーバーロードされると、オーバーロードされたバージョンごとに生成されるマングル名は一意になります。名前マングリングは変数にも適用されます。したがって、ユーザーが指定した同じ名前を持つローカル変数とグローバル変数は、依然として別個のマングル名を取得します。
関数と同名のグローバル変数とローカル変数をオーバーロードする以外に、名前マングリングを使用している他の例はありますか?
(2)ウィキより
異なる名前空間を占有する限り、言語が異なるエンティティに同じ識別子で名前を付けることを許可する場合に必要が生じます (名前空間は通常、モジュール、クラス、または明示的な名前空間ディレクティブによって定義されます)。
オーバーロード関数が同じ名前空間にあり、同じ名前のグローバル変数とローカル変数も同じ空間にある可能性があるため、識別子が異なる名前空間に属している場合にのみ名前マングリングが適用される理由がよくわかりません。これを理解する方法は?
名前が同じでスコープが異なる変数も名前マングリングを使用しますか?
(3) C には名前マングリングがありますか? そうでない場合、いくつかのグローバル変数とローカル変数が同じ名前を持つ場合、どのように対処できますか? Cにはオーバーロード関数がありませんよね?
よろしくお願いします!
c++ - C++dllのメソッドに対応する引数を見つける
わかりました。dumpbin.exe/exportslibrary.dllを使用して、dll内のすべてのメソッドを検索できます。
...しかし、どの引数をそれらに渡すかをどのように見つけるのですか?もちろんヘッダーファイルなし。
c++ - C++ の名前マングリング (装飾) は決定論的ですか?
マネージ コードを含むアンマネージ C++ DLL で LoadLibrary を実行し、マングルされた extern 関数で GetProcAddress を呼び出したいと考えています。私の質問は、C++ コンパイラから得られるマングルされた名前は決定論的ですか? つまり、元の署名が変更されていない場合、名前は常に同じマングル名に変換されますか?
c++ - C ++は、関数/メソッドのマングル名を取得します
こんにちは、C++ アプリ自体から関数のマングル名を特定する必要があります。__FUNCDNAME__g++のマクロに相当するものはありますか?
c++ - 名前マングリングでアクセス指定子を使用する C++ コンパイラはどれですか?
MSVC は知っていますが、GCC はそうではありません。他の人はどうですか?
asp.net - ASP.NETの名前マングリングは一貫していますか?
このようなASPコントロールがある場合:
それが生成するhtmlは名前を壊します。生成されたアイテムのIDに直接アクセスしたい場合は、名前が何に影響するのかを調べて、そのIDを探すことができます。
生成されたアイテムの名前は、Microsoftの標準によって、特定の方法で実行されることが保証されていますか?彼らが別の方法でそれを行う新しいバージョンの.NETをリリースした場合、私はこの破壊を恐れています。コードで自分自身をマングリングする名前を生成する方法はありますか?
c - VisualStudioをIntelFortranと組み合わせて使用し、さまざまなタイプの名前マングリングを使用して解決する方法
fortranとcコードの素敵なメッシュであるプログラムを入手しました。このプログラムをコンパイルするには、ソフトウェアベンダーからプリコンパイルされた一連のライブラリが必要です。これには、特にIntel MKL、MPICH2などが含まれます。Linuxでは、すべてが正常に機能します。しかし、Windowsでは私は立ち往生しています:
コマンドラインを使用すると、次の2つの方法でifortを使用してプログラムをコンパイルできます。
[ A ] ifort / Qlowercase / assert:underscore .......
[ B ] ifort / Quppercase / assert:nounderscore...。 ...。
オプションAを使用することにした場合、一部の外部ライブラリは大文字のnounderscoreを使用してコンパイルされ、これらのシンボルを解決できないため、一連の欠落したシンボルが表示されます。同様に、オプションBを使用すると、他の外部ライブラリはアンダースコア付きの小文字を使用してコンパイルされるため、文句を言います。
リンク状態中にシンボル/関数を再マップする方法はありますか?代替手段はありますか?
c++ - スコープ内で識別子を再利用する方法はありますか?
通常、同じスコープ内の別の変数のようなものに変数の名前のような同じ識別子を使用すると、コンパイラによってエラーが発生します。この特定のポイントまでのこのスコープでは、この名前には独自の目的があり、以前はこの変数を参照していましたが、この時点以降、同じ名前が別の目的を持つ別の変数のような他の何かを参照することになりますか?
c++ - Classname::FunctionName( Para1, Para2 ) のシンボルを変換する
char** backtrace_symbols(void *buffer, int size)例外がスローされたときにスタック トレースを取得するために、GNU 拡張 " " を使用しています。シンボルを「人間が読める」文字列に変換するライブラリ関数はありますか?名前のマングリングをやり直すために?
そうでない場合は、このWiki の記事に従って独自の関数を作成します。
コンクリート:
どうもありがとう、
チャーリー