1

我最近看到了博客文章Monovation: Miguel de Icaza 的实时过程中的装配注入。

我试图在没有运气的情况下重现它。我的命令行是

'csharp --attach 5612'

其中 5612 是一个简单的运行单声道“Hello World”控制台应用程序的 pid。我有一个例外(请参阅上面的堆栈跟踪)。

到目前为止我已经尝试过:

  • 使用 Mono 2.10.8(.NET 4 和 2 的 csharp 和 csharp2 命令)
  • 使用 Mono 3.2.3(仅存在 csharp 命令)

Q1:错过了什么?

Q2:这个虚拟机附加工具(参见Monovation:Assembly Injection into Live Processes)是否可能仅在 Linux 安装中可用?(我使用的是 Windows 7)这听起来很简单,但 Miguel 在他的文章中没有提到平台限制,而且 mono 的重点是多平台,不是吗?所以我简直不敢相信它这么容易。

Q3:Mac 呢?它有没有可能在 Mac 上运行,或者我们必须寻找其他地方?

提前谢谢

堆栈跟踪:

Unhandled Exception:
System.TypeInitializationException: An exception was thrown by the type initializer for     Mono.Unix.Native.Syscall ---> System.EntryPointNotFoundException:    Mono_Posix_Syscall_get_at_fdcwd
  at (wrapper managed-to-native) Mono.Unix.Native.Syscall:get_at_fdcwd ()
  at Mono.Unix.Native.Syscall..cctor () [0x00000] in <filename unknown>:0 
  --- End of inner exception stack trace ---
  at Mono.Unix.UnixUserInfo.GetRealUserId () [0x00000] in <filename unknown>:0 
  at Mono.Unix.UnixUserInfo.GetRealUser () [0x00000] in <filename unknown>:0 
  at Mono.Attach.VirtualMachine.Attach (System.String agent, System.String args)  [0x00000] in <filename unknown>:0 
  at Mono.ClientCSharpShell..ctor (Mono.CSharp.Evaluator evaluator, Int32 pid) [0x00000] in <filename unknown>:0 
  at Mono.Driver.Main (System.String[] args) [0x00000] in <filename unknown>:0 
[ERROR] FATAL UNHANDLED EXCEPTION: System.TypeInitializationException: An exception was  thrown by the type initializer for Mono.Unix.Native.Syscall --->  System.EntryPointNotFoundException: Mono_Posix_Syscall_get_at_fdcwd
  at (wrapper managed-to-native) Mono.Unix.Native.Syscall:get_at_fdcwd ()
  at Mono.Unix.Native.Syscall..cctor () [0x00000] in <filename unknown>:0 
  --- End of inner exception stack trace ---
  at Mono.Unix.UnixUserInfo.GetRealUserId () [0x00000] in <filename unknown>:0 
  at Mono.Unix.UnixUserInfo.GetRealUser () [0x00000] in <filename unknown>:0 
  at Mono.Attach.VirtualMachine.Attach (System.String agent, System.String args) [0x00000] in <filename unknown>:0 
  at Mono.ClientCSharpShell..ctor (Mono.CSharp.Evaluator evaluator, Int32 pid) [0x00000]  in <filename unknown>:0 
  at Mono.Driver.Main (System.String[] args) [0x00000] in <filename unknown>:0 
4

0 回答 0