Home PC Games Linux Windows Database Network Programming Server Mobile  
           
  Home \ Linux \ Experience CoreCLR stack unwinding characteristics of initial implementation on Linux / Mac     - Oracle partition table data migration, process management automation (Database)

- How to use the command line to obtain Freely RSS source on Linux (Linux)

- CentOS6 5 source compiler installation Hadoop2.5.1 (Server)

- Ubuntu installation 2.10.x version of Scala (Linux)

- CentOS RedHat YUM Source Extensions Supplement (including 32-bit, 64-bit) (Linux)

- About Git (Linux)

- Create, modify, delete users, user groups under linux (Linux)

- Linux 6 use UDEV binding shared storage (Linux)

- To install and deploy Java applications under CentOS 6.5 (Linux)

- Linux Getting Started tutorial: Borrow Windows fonts in Ubuntu 14.10 (Linux)

- Installation Atom text editor on Mint Ubuntu / Linux (Linux)

- MongoDB configuration in Ubuntu 14.04 (Database)

- Network Security: SYN attacks against under linux (Linux)

- CentOS 6.5 Telnet SecureCRT use management tools (Linux)

- Linux source code to install Apache and solutions to common errors (Server)

- On FreeBSD 10.2 Bugzilla how to install and configure Apache SSL (Server)

- impdp error ORA-39001, ORA-39000, ORA-31619 (Database)

- How SSHfs mount a remote file system on Linux (Linux)

- To deploy MySQL database with separate read and write OneProxy (Database)

- Using LLVM Clang and Blocks under Linux (Programming)

 
         
  Experience CoreCLR stack unwinding characteristics of initial implementation on Linux / Mac
     
  Add Date : 2018-11-21      
         
         
         
  With stack unwinding characteristics, in order to obtain the call stack (call stack) information in .NET programs, to display the call stack information in the exception. Before this feature only on Windows have to realize, realize Linux / Mac on only recently added, using libunwind, see Merge branch 'unix_issue177'.

If you do not know stack unwinding, recommended reading C ++ Tutorial: Exceptions - Stack Unwinding.

Let's experience together.

Sample console program are as follows:

using System;
class Program
{
    static void A ()
    {
        B ();
    }

    static void B ()
    {
        The C ();
    }

    static void C ()
    {
        The D ();
    }

    static void D ()
    {
        Console.WriteLine (System.Environment.StackTrace);
    }

    static void Main (string [] args)
    {
        The A ();
    }
}
Corresponding code file named StackTrace.cs, compiled as StackTrace.exe.

Let's create the same console program in Visual Studio experience stack unwinding effect:

at System.Environment.GetStackTrace (Exception e, Boolean needFileInfo)
at System.Environment.get_StackTrace ()
at Program.D ()
at Program.C ()
at Program.B ()
at Program.A ()
at Program.Main (String [] args)
Then look at the effect did not materialize during stack unwinding.

Corerun StackTrace.exe runs on Linux, no console output.

# Runtime_linux / corerun app / StackTrace.exe
#
Runs on Mac corerun StackTrace.exe error:

sh-3.2 $ runtime_mac / corerun app / StackTrace.exe
Assert failure (unable to format)
/Users/dudu/git/dotnet/coreclr/src/vm/stackwalktypes.h
SPOffset> = pUnwindInfo-> RSPOffsetFromUnwindInfo
**** MessageBox invoked, title 'Assert failure (unable to format)' ****
  SPOffset> = pUnwindInfo-> RSPOffsetFromUnwindInfo
********

Assert failure (unable to format)
/Users/dudu/git/dotnet/coreclr/src/vm/stackwalktypes.h
FitsIn (pUnwindInfo-> RBPOffset + (SPOffset - pUnwindInfo-> RSPOffsetFromUnwindInfo))
**** MessageBox invoked, title 'Assert failure (unable to format)' ****
  FitsIn (pUnwindInfo-> RBPOffset + (SPOffset - pUnwindInfo-> RSPOffsetFromUnwindInfo))
********
Then look at the results stack unwinding after initial implementation.

On Mac and Linux running corerun StackTrace.exe results are as follows:

at System.Environment.GetStackTrace (Exception e, Boolean needFileInfo)
at System.Environment.get_StackTrace ()
at Program.Main (String [] args)
     
         
         
         
  More:      
 
- Make command tutorial (Linux)
- Git remote repository Explanation (Linux)
- To share Internet access through NAT mode under Virtual Linux VMware Workstation (Linux)
- Java List add duplicate the same object (Programming)
- How to recover deleted files in Linux systems (Linux)
- Detailed driver compiled into the Linux kernel (Programming)
- Oracle table space usage monitoring (Database)
- Configuring a Linux operating system security management services (Linux)
- Using DBMS_STAT function closes mission (Database)
- CentOS yum source configuration (Linux)
- C language to view various types of data size (Programming)
- Red-black tree in C ++ (Programming)
- Moosefs Distributed File System Configuration (Server)
- DRBD + Heartbeat solve NFS single point of failure (Server)
- MyCAT read and write separation of MySQL (Database)
- Windows 8.1 hard drive to install Ubuntu 14.04 dual system reference tutorials and multi-drive Precautions (Linux)
- Ubuntu Tutorial: How to Upgrade a New Linux Kernel 3.12.7 on Ubuntu (Linux)
- How to implement Linux host Telnet SSH password Free (Server)
- Android Studio quick overview of Gradle (Programming)
- openSUSE 13.1 / 13.2 installation SoundConverter 2.1.2 (Linux)
     
           
     
  CopyRight 2002-2022 newfreesoft.com, All Rights Reserved.