From: JR on
On May 13, 6:46 pm, Arne Vajhøj <a...(a)vajhoej.dk> wrote:
> On 13-05-2010 19:26, Lew wrote:
>
> > The word "managed" has no relevance in Java because the word "unmanaged"
> > has no meaning. Everything is "managed". There is no "managed function",
> > just "method".
>
> It is .NET terminology.
>
> Translation to Java:
>
> managed = Java code
> unmanaged = native code
>
> Arne

k, so given a windows crash dump how would one determine what java
code was being run by the jvm?
From: Lew on
Lew wrote:
>> The word "managed" has no relevance in Java because the word "unmanaged"
>> has no meaning. Everything is "managed". There is no "managed function",
>> just "method".

Arne Vajhøj wrote:
> It is .NET terminology.
>
> Translation to Java:
>
> managed = Java code
> unmanaged = native code

That is instructive. I thought "unmanaged" code in .Net (with which I'm
barely passingly familiar) meant high-level code still (e.g., C#), but without
the memory-management features (GC).

--
Lew
From: Lew on
JR wrote:
> consider it native code run by cpu vs byte code run by jvm.
>
> You understand what im [sic] getting at though right?

Now I do, thanks to your and Arne's explanations. I don't get why you need
that information.

Also, the native code run in the JVM changes during execution, at least with
the Hotspot compiler, as optimizations come and go.

Much more convenient that non-portably hacking the JVM, I'd think, would be
using the inbuilt debugging facilities of the JVM, which explicitly provide
for peering into the methods and data in use by a program.

--
Lew
From: Thomas Pornin on
According to Lew <noone(a)lewscanon.com>:
> That is instructive. I thought "unmanaged" code in .Net (with which
> I'm barely passingly familiar) meant high-level code still (e.g., C#),
> but without the memory-management features (GC).

Well, C# has that, too. C# syntax tends to agglomerate features quite
fast. You can have "unmanaged" C# code, with C-like things like explicit
pointer arithmetic. But the term "unmanaged" is also used to describe
native code. Basically, in the .NET world, "managed" means "code where
types, array accesses, memory management,... is under strict control of
the VM" and "unmanaged" means "whatever is not managed".


--Thomas Pornin
From: Arne Vajhøj on
On 13-05-2010 20:31, Lew wrote:
> Lew wrote:
>>> The word "managed" has no relevance in Java because the word "unmanaged"
>>> has no meaning. Everything is "managed". There is no "managed function",
>>> just "method".
>
> Arne Vajhøj wrote:
>> It is .NET terminology.
>>
>> Translation to Java:
>>
>> managed = Java code
>> unmanaged = native code
>
> That is instructive. I thought "unmanaged" code in .Net (with which I'm
> barely passingly familiar) meant high-level code still (e.g., C#), but
> without the memory-management features (GC).

The very short version is that:

managed code = C# code

unmanaged code = C/C++ code called via one of DllImport, COM interop or
mixed mode C++.

Arne